javascript - Javascript 中用于检查@符号的正则表达式

标签 javascript regex

我正在尝试检测文本 block (来自文本区域)是否包含以@sign 为前缀的单词。

例如在下面的文本中:嘿@John,我刚看到@Smith

它会在没有@符号的情况下分别检测到John和Smith。我认为这样的事情会起作用:

@\w\w+

我的问题是如何让 javascript 过滤文本,假设它存储在变量注释中?

它应该只输出文本中以@ 为前缀而不带@ 符号的名称。

问候。

最佳答案

您使用 g(全局)标志、一个捕获组和一个循环调用 RegExp#exec ,像这样:

var str = "Hi there @john, it's @mary, my email is mary@example.com.";
var re = /\B@(\w+)/g;
var m;

for (m = re.exec(str); m; m = re.exec(str)) {
    console.log("Found: " + m[1]);
}

输出:

Found: john
Found: mary

Live example | source


感谢@Alex K 的边界推荐!

关于javascript - Javascript 中用于检查@符号的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11000330/

相关文章:

html页面中的javascript脚本 block 在标题中工作,但不适用于外部文件

javascript - 为什么用 javascript 包装函数会导致递归和堆栈溢出错误?

大括号中包含数字的正则表达式

php - 如何通过正则表达式解析 nslookup 结果

括号后的javascript正则表达式问号

javascript - 如何获取 highcharts 中 yAxis 标签的最高值?

javascript - JavaScript中的this关键字问题

javascript 用多行字符串替换多行字符串

regex - 英语单词的 Perl 正则表达式

java - 在Java中匹配一行并提取文件名的正则表达式