在IE和Firefox中都能工作的最干净的方法是什么?
我的字符串看起来像这个sometext-20202
现在sometext和破折号后面的整数可以有不同的长度。
我应该使用子字符串和索引还是有其他方法?
在IE和Firefox中都能工作的最干净的方法是什么?
我的字符串看起来像这个sometext-20202
现在sometext和破折号后面的整数可以有不同的长度。
我应该使用子字符串和索引还是有其他方法?
当前回答
对于那些试图在第一次事件发生后就得到所有东西的人:
比如"尼克·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
其他回答
我会怎么做:
// function you can use:
function getSecondPart(str) {
return str.split('-')[1];
}
// use the function:
alert(getSecondPart("sometext-20202"));
var testStr = "sometext-20202"
var splitStr = testStr.substring(testStr.indexOf('-') + 1);
使用任何分隔符并获得第一部分或第二部分
//To divide string using deimeter - here @
//str: full string that is to be splitted
//delimeter: like '-'
//part number: 0 - for string befor delimiter , 1 - string after delimiter
getPartString(str, delimter, partNumber) {
return str.split(delimter)[partNumber];
}
我更喜欢的解决方案是:
const str = 'sometext-20202';
const slug = str.split('-').pop();
你的结果是什么
使用内置的javascript replace()函数和使用regex(/(.*)-/),你可以用空字符串("")替换破折号之前的子字符串:
"sometext-20202".replace(/(.*)-/,""); // result --> "20202"