Js regexp变量用于获取字符串中的所有匹配项

时间:2016-04-21 06:32:02

标签: javascript regex pug

有以下代码:

s.match(/\+[A-Za-z0-9_]+/);

我用它来从字符串中获取所有Jade mixins。它适用于字符串中的一个Jade mixins(“+ article”),但不适用于字符串中的2个mixin(“+ article + b”) - 它只返回第一个项目的数组。我做错了什么?谢谢!另外,如果没有加号,请使用值来获取数组!

1 个答案:

答案 0 :(得分:0)

在正则表达式中添加全局标记g

s.match(/\+[A-Za-z0-9_]+/g);

更新:已移除+符号

的演示

s = '+abc +4kk +ttt';
var res = s.match(/\+[A-Za-z0-9_]+/g).map(function(v) {
  return v.substring(1) // get string after `+`
});

document.write('<pre>' + JSON.stringify(res, null, 3) + '</pre>');
或者使用捕获组

的正则表达式

var s = '+abc +4kk +ttt';
var reg = /\+([A-Za-z0-9_]+)/g;

var matches, res = [];
while (matches = reg.exec(s)) {
  res.push(matches[1]); // get captured group value
}

document.write('<pre>' + JSON.stringify(res, null, 3) + '</pre>');