javascript - 如何在 Javascript 正则表达式中匹配单个单词?

标签 javascript regex

我只想在 javascript 中的模式后匹配一个单词 (\w+)。

这是我的简单测试代码:

(new RegExp("apple:\w+")).test("apple:asdf");

但是,javascript 告诉我该模式不匹配。这几乎违背了我习惯的正则表达式匹配的一切。即使我在 regex101.com 上测试它,我也得到了匹配。

匹配单词的约定是什么?

最佳答案

首先,您需要转义字符串文字中的斜杠,否则它将丢失:

const slashIsLost = "apple:\w+";
console.log(slashIsLost); // apple:w+

const slashIsEscaped = "apple:\\w+";
console.log(slashIsEscaped ); // apple:\w+

其次,您需要记住 \w 匹配字母、数字和 _ 字符。因此,您最好使用 [A-Za-z] 字符类 - 或者只咬第一对并使用 i 标志使 RegExp 不区分大小写。

作为旁注,确实不清楚为什么不在这里使用 RegExp 文字:

/apple:[a-z]+/i.test('apple:asdf')

关于javascript - 如何在 Javascript 正则表达式中匹配单个单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51828247/

相关文章:

javascript - D3轴: aligning dates (x),显示时间(y)

regex - grep的贪婪行为

ruby-on-rails - Ruby Rails %r 和 %w

javascript - 如何在字符串中围绕 ‘PM’ 和 ‘AM’ 换行?

ruby-on-rails - 使用正则表达式根据用户名的最后一个字母更改文本

javascript - 使用javascript用字符串附加变量值

javascript - 如何引用动态创建的拉斐尔 Canvas ?

javascript - 在打开页面时显示从 firebase 到页面的值

javascript - 如何在 JavaScript 中创建动态超时句柄?

javascript - 匹配 OData 查询的正则表达式