string匹配的Javascript

我想要@符号后面的字符,直到空格字符。

例如。 如果我的string像hello @world. some gibberish.@stackoverflow hello @world. some gibberish.@stackoverflow 。 然后我想获得angular色的“世界”和“计算器”。

这是我一直在尝试。

 var comment = 'hello @world. some gibberish.@stackoverflow'; var indices = []; for (var i = 0; i < comment.length; i++) { if (comment[i] === "@") { indices.push(i); for (var j = 0; j <= i; j++){ startIndex.push(comment[j]); } } } 

我可以得到@和空格的出现,然后修剪该部分以获得我的内容,但是我希望有一个更好的解决scheme/build议,没有REGEX。 提前致谢。

你可以使用这个正则expression式:

 /@(\S+)/g 

并在循环中使用exec方法抓取捕获的组。

此正则expression式匹配@ ,然后\S+匹配一个或多个非空间字符,这些字符被分组到捕获的组中。

码:

 var re = /@(\S+)/g; var str = 'hello @world. some gibberish.@stackoverflow'; var m; var matches=[]; while ((m = re.exec(str)) !== null) { matches.push(m[1]); } document.writeln("<pre>" + matches + "</pre>");