为什么这个javascript助手返回一个数组?

为什么这个javascript助手返回一个数组?,javascript,Javascript,我有一个DOM元素,看起来像: function(obj){ if(obj == undefined || obj == null){ return ''; } var id = obj.match(/\d+$/); return id || ''; } 我希望在调用上述函数时返回id的“123”部分 其他元素可能类似于: id="some-text-123" 我在一个看起来像“some-text-213”的元素上调用了这个 它似乎返回了一个数组,我只想返回id。.mat

我有一个DOM元素,看起来像:

function(obj){
 if(obj == undefined || obj == null){
   return '';
}

  var id = obj.match(/\d+$/);

  return id || '';
}
我希望在调用上述函数时返回id的“123”部分

其他元素可能类似于:

id="some-text-123"
我在一个看起来像“some-text-213”的元素上调用了这个

它似乎返回了一个数组,我只想返回id。

.match()
返回一个数组

这就是阵列的来源

请参见fiddle:

.match()
返回数组

这就是阵列的来源

请参见fiddle:

函数
.match()
返回数组

函数
.match()
返回一个数组


函数
match
返回一个数组,如果存在匹配,则函数返回一个数组。函数
match
返回一个数组,如果存在匹配,则函数返回一个数组。

方法返回一个数组,其中第一项包含完整的匹配文本。更新您的
return
语句以反映这一点:

id="123"
id="some-123"
id="some-ting-else-1"
该方法返回一个数组,数组的第一项包含完整的匹配文本。更新您的
return
语句以反映这一点:

id="123"
id="some-123"
id="some-ting-else-1"

Javascript的正则表达式匹配返回匹配结果的数组。在所有测试用例中,它将是一个数组,其中包含一个值,如[“123”]或[“1”]。如果您有一个像“123-abcd-456”这样的测试用例,match将返回[“123”,“456”]

如果您确定只想要第一场比赛,您可以这样做:

return id ? id[0] : '';

Javascript的正则表达式匹配返回匹配结果的数组。在所有测试用例中,它将是一个数组,其中包含一个值,如[“123”]或[“1”]。如果您有一个像“123-abcd-456”这样的测试用例,match将返回[“123”,“456”]

如果您确定只想要第一场比赛,您可以这样做:

return id ? id[0] : '';
将返回第一场比赛,这是你想要的吗

编辑:对不起,pipe char目前不适合我

将返回第一场比赛,这是你想要的吗


编辑:抱歉,pipe char目前不适用于我

您可能需要在正则表达式中使用分组参数

return id[0] ¦¦ '';

您可能希望在正则表达式中使用分组参数

return id[0] ¦¦ '';
“似乎”?是吗?MDC文档说,除非指定
/g
标志,否则,.match()将返回与
/\d+$/.exec(obj)
相同的值,该值应该只是一个字符串。@Marc B:
“test one two”。match(/t/)
返回
[“t”]
“似乎是”?是吗?MDC文档说,除非指定
/g
标志,否则,.match()将返回与
/\d+$/.exec(obj)
相同的值,该值应该只是一个字符串。@Marc B:
“test one two”。match(/t/)
返回
[“t”]