Respostas:
Como eu faria isso:
// function you can use:
function getSecondPart(str) {
return str.split('-')[1];
}
// use the function:
alert(getSecondPart("sometext-20202"));
get everything after the dash in a string in javascript
que, neste caso, falharia.
Uma solução que eu prefiro seria:
const str = 'sometext-20202';
const slug = str.split('-').pop();
Onde slug
seria o seu resultado
var the_string = "sometext-20202";
var parts = the_string.split('-', 2);
// After calling split(), 'parts' is an array with two elements:
// parts[0] is 'sometext'
// parts[1] is '20202'
var the_text = parts[0];
var the_num = parts[1];
AFAIK, ambos substring()
e indexOf()
são suportados pelo Mozilla e IE. No entanto, observe que substr () pode não ser suportado em versões anteriores de alguns navegadores (especialmente Netscape / Opera).
Sua postagem indica que você já sabe como fazê-lo usando substring()
e indexOf()
, portanto, não estou postando uma amostra de código.
Você pode fazer isso com RegExp interno (padrão [, flags]) Factory Notation em js como este:
RegExp(/-(.*)/).exec("sometext-20202")[1]
na função code exec acima, retornará uma matriz com dois elementos (["-20202", "20202"]), um com hífen (-20202) e outro sem hífen (20202); você deve escolher o segundo elemento (índice 1)
myString.split('-').splice(1).join('-')
myString.split('-').splice(-1).join('-')
Use uma expressão regular do formato: \ w- \ d + em que a \ w representa uma palavra e \ d representa um dígito. Eles não funcionarão imediatamente, então brinque. Tente isso .
sometext-20202-303
?