有以下代码:
s.match(/\+[A-Za-z0-9_]+/);
我用它来从字符串中获取所有Jade mixins。它适用于字符串中的一个Jade mixins(“+ article”),但不适用于字符串中的2个mixin(“+ article + b”) - 它只返回第一个项目的数组。我做错了什么?谢谢!另外,如果没有加号,请使用值来获取数组!
答案 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>');