Javascript中的正则表达式以捕捉提及
我如何用javascript编写一个正则表达式来匹配所有类似twitter的提及@something,但不匹配电子邮件地址 我需要在一个巨大的文本字段中捕获无限数量的提及。应捕获@前面有不可打印字符和括号的字符串。您可以使用此正则表达式Javascript中的正则表达式以捕捉提及,javascript,regex,Javascript,Regex,我如何用javascript编写一个正则表达式来匹配所有类似twitter的提及@something,但不匹配电子邮件地址 我需要在一个巨大的文本字段中捕获无限数量的提及。应捕获@前面有不可打印字符和括号的字符串。您可以使用此正则表达式 /(\s|^)@[^\s]+/ \s表示空间。您可以使用此正则表达式 /(\s|^)@[^\s]+/ /(?<!\w)@\w+/g \s代表空间 /(?<!\w)@\w+/g 这将是一个简单的解决方案,但由于JavaScript不支持,它将成
/(\s|^)@[^\s]+/
\s表示空间。您可以使用此正则表达式
/(\s|^)@[^\s]+/
/(?<!\w)@\w+/g
\s代表空间
/(?<!\w)@\w+/g
这将是一个简单的解决方案,但由于JavaScript不支持,它将成为一项非常重要的任务:
var matches = str.match(/(^|\W)@\w+/g);
for (var i=0; i<matches.length; i++)
matches[i] = matches[i].replace(/^[^@]/, "");
如果您想在编辑时支持更大范围的字符,可以使用
/?
这将是一个简单的解决方案,但由于JavaScript不支持,它将成为一项非常重要的任务:
var matches = str.match(/(^|\W)@\w+/g);
for (var i=0; i<matches.length; i++)
matches[i] = matches[i].replace(/^[^@]/, "");
如果您想在编辑时支持更大范围的字符,可以使用
/快速回答您的问题:
var re = /\s@[\w\-]/
请注意,例如,您可以在控制台Firebug中看到正则表达式的结果。请快速回答:
var re = /\s@[\w\-]/
请注意,例如,您可以在控制台Firebug中看到正则表达式的结果。它不是类似于^@[a-zA-Z0-9]+$吗?我不知道还有哪些字符是允许的,但只要把它们加在括号中就行了。它不是像^@[a-zA-Z0-9]+$这样的东西吗?我不知道还允许使用哪些字符,只需将它们添加到括号中即可。太糟糕了,JavaScript正则表达式没有lookbehind断言。根据需要,在括号内添加标点符号,如\s | \ |^。太糟糕了,JavaScript正则表达式没有lookbehind断言。根据您的需要,在括号内添加标点符号,如\s \ \ \^。好的,但是如何一次捕获所有提及的内容?好的,但是如何一次捕获所有提及的内容?