我正在尝试匹配此字符串中的 @ 标签:
@sam @gt @channel:sam dfgfdh sam@sam
现在,在正则表达式测试器中,这可以使用
@[\S]+
(带有 JS 测试设置)来挑选所有以 @ 开头的字符串,因此在其中我得到:@sam @gt @channel:sam @sam
但随后在使用此代码的浏览器中:
function detect_extractStatusUsers(status){
var e = new RegExp('@[\S]+', 'i');
m = e.exec(status);
var s= "";
if (m != null) {
for (i = 0; i < m.length; i++) {
s = s + m[i] + "\n";
}
alert(s);
}
return true;
}
我只能得到
@
的一个匹配(如果我很幸运,通常没有匹配)。我一定在这里遗漏了一些东西,我的眼睛盯着这个看得太久了,看不出它是什么。
任何人都可以看到这个功能有什么问题吗?
谢谢,
最佳答案
你需要:
g
设置 match
而不是 exec
var e = new RegExp('@[\\S]+', 'gi');
m = status.match(e);
关于JavaScript 正则表达式帮助!,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5538104/