我有一个Python函数,它从包含数字簇的字符串中生成一个整数列表:
def str_strip_numbers(s):
"""
Returns a vector of integer numbers
embedded in a string argument
"""
return [int(x) for x in re.compile('\d+').findall(s)]
比如an1kb12s336z
,它会返回[1,12,336]
在JavaScript中获得相同内容的最佳方法是什么?我用正则表达式摆弄了一下,但收获并不多。这不是我所希望的:
> var nn = /\d+/g
undefined
> nn
/\d+/g
> 'aba12gg4a'.search(nn)
3
看起来我得到了数字位数。
答案 0 :(得分:2)
搜索不是您正在寻找的功能。 String.prototype.search()返回第一个匹配结果的位置。
您应该使用String.prototype.match:'aba12gg4a'.match(/\d+/g)
。这将返回源字符串中找到的所有匹配项的数组。
答案 1 :(得分:0)
'aba12gg4a'.split(/[^0-9]+/).reduce(function( ret, elem ){
if (! isNaN(elem = parseInt(elem))){
ret.push( elem );
}
return ret;
}, []);
答案 2 :(得分:0)
<SOAP-ENV:Fault...> </SOAP-ENV:Fault>
<proxy ... >
<target faultSequence="faultlogger" endpoint="conf:/myService>
...
</target>
</proxy>
__表示strStripNumbers: function(str) {
return str.match(/\d+/g).map(__.parseInt);
}
库