查找所有9组

时间:2016-12-16 08:16:21

标签: javascript regex

我正在学习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的所有组?

2 个答案:

答案 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