在IE和Firefox中都能工作的最干净的方法是什么?
我的字符串看起来像这个sometext-20202
现在sometext和破折号后面的整数可以有不同的长度。
我应该使用子字符串和索引还是有其他方法?
在IE和Firefox中都能工作的最干净的方法是什么?
我的字符串看起来像这个sometext-20202
现在sometext和破折号后面的整数可以有不同的长度。
我应该使用子字符串和索引还是有其他方法?
当前回答
我更喜欢的解决方案是:
const str = 'sometext-20202';
const slug = str.split('-').pop();
你的结果是什么
其他回答
你可以使用分裂方法。如果你需要从特定的模式中获取字符串,你可以使用split with req。经验值:
Var string = "sometext-20202"; console.log (string.split (/-(.*)/)[ 1))
高效,紧凑,适用于一般情况:
s='sometext-20202'
s.slice(s.lastIndexOf('-')+1)
AFAIK, Mozilla和IE都支持substring()和indexOf()。但是,请注意,某些浏览器的早期版本(特别是Netscape/Opera)可能不支持substr()。
你的文章表明你已经知道如何使用substring()和indexOf(),所以我不发布一个代码示例。
对于那些试图在第一次事件发生后就得到所有东西的人:
比如"尼克·K·凯奇"变成"K·凯奇"
你可以使用切片来获取某个角色的所有内容。在本例中,从第一个空格开始:
const delim = " "
const name = "Nic K Cage"
const result = name.split(delim).slice(1).join(delim) // prints: "K Cage"
或者如果OP的字符串有两个连字符:
const text = "sometext-20202-03"
// Option 1
const opt1 = text.slice(text.indexOf('-')).slice(1) // prints: 20202-03
// Option 2
const opt2 = text.split('-').slice(1).join("-") // prints: 20202-03
使用内置的javascript replace()函数和使用regex(/(.*)-/),你可以用空字符串("")替换破折号之前的子字符串:
"sometext-20202".replace(/(.*)-/,""); // result --> "20202"