作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我只想在 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/
我是一名优秀的程序员,十分优秀!