function(obj){
if(obj == undefined || obj == null){
return '';
}
var id = obj.match(/\d+$/);
return id || '';
}
我有一个看起来像这样的DOM元素:
id="some-text-123"
我希望在调用上面的函数时返回id的'123'部分。
其他元素可能如下:
id="123"
id="some-123"
id="some-ting-else-1"
我在一个看起来像“some-text-213”
的元素上调用了它它似乎返回一个数组,我只想返回id。
答案 0 :(得分:3)
答案 1 :(得分:3)
答案 2 :(得分:1)
match
函数返回一个数组,所以如果匹配,你的函数会返回一个数组。
答案 3 :(得分:1)
match
方法返回一个数组,其中第一项包含整个匹配的文本。更新您的return
语句以反映这一点:
return id ? id[0] : '';
答案 4 :(得分:1)
您可能希望在正则表达式中使用分组parens
var matches = obj.match(/(\d+$)/);
if(matches.length > 0) {
return matches[1];
}
答案 5 :(得分:0)
Javascript的正则表达式匹配返回匹配结果的数组。在所有测试用例中,它将是一个包含单个值的数组,如[“123”]或[“1”]。如果您有一个类似“123-abcd-456”的测试用例,匹配将返回[“123”,“456”]。
如果您确定只想要第一场比赛,可以这样做:
var matches = obj.match(/\d+$/);
if(matches.length != 0) {
return matches[0];
}
return '';
答案 6 :(得分:0)
return id[0] ¦¦ '';
返回第一场比赛是你想要的吗?
编辑:抱歉管道char目前不适合我