我正在学习JS正则表达式,所以我正在考虑这个示例字符串99s999s99s99
。
现在我想找到这个字符串中的所有数字序列。我尝试了以下方法:
var s = /(\d+)/g;
var a = '99s999s99s99';
s.exec(a);
var s = /(\d+)/;
var a = '99s999s99s99';
s.exec(a);
但两者都产生以下输出:
[ '99', '99', index: 0, input: '99s999s99s99' ]
如何查找9
的所有组?
答案 0 :(得分:1)
你的正则表达式很好(虽然它会匹配其他数字,但不会像你的标题所示那样匹配9),但是当你需要RegExp.prototype.exec时,你正在使用String.prototype.match。
'99s999s99s99'.match( /(\d+)/g )
返回数组:
["99", "999", "99", "99"]
RegExp.prototype.exec
必须called repeatedly使用相同的RegExp查找所有匹配项,否则只找到一个匹配项。
答案 1 :(得分:0)
检查以下代码和演示链接:
代码:
var str = "99s999s99s99";
var pattern = /\d+/g;
var result = str.match(pattern);
console.log(result);
执行:
var str = "99s999s99s99";
var pattern = /\d+/g;
var result = str.match(pattern);
console.log(result);
演示链接:JS BIN