javascript - 为什么 Javascript 正则表达式中的 "or"运算符没有被转义

标签 javascript regex

我试图检查“mystring”和结束字符(管道)之间是否有值。但是

new RegExp('mystring:.+\|').test('bla')

评估结果为 true,即使我转义了“|”运算符(operator)。我试图实现的目标是:

new RegExp('mystring:.+\|').test('mystring:|')

计算结果为 False(因为“mystring:”和转义的“|”之间没有任何内容。

new RegExp('mystring:.+\|').test('mystring:something|')

评估为真。

这不是我看到的行为,因为所有内容都评估为 True 并且它看起来不像“|”正在逃脱...

最佳答案

转义反斜杠。如果在 RegExp 构造函数中使用 ",则必须再次转义正则表达式中存在的所有反斜杠。

new RegExp('mystring:.+\\|').test('mystring:something|')

new RegExp('mystring:.+[|]').test('mystring:something|')

关于javascript - 为什么 Javascript 正则表达式中的 "or"运算符没有被转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31973787/

相关文章:

javascript - 在 JS 中执行函数之前执行带有参数的初始任务

javascript - 如果其他控件没有值,如何使复选框保持禁用状态,如果控件在 Angular 8 中具有值,则如何使复选框保持禁用状态

.net - 结合 .net 和 powershell 正则表达式捕获组语法

regex - 在 bash 中通过正则表达式进行 Grep 哈希

用于匹配缩进连续行的正则表达式

javascript - 动态创建 JavaScript 处理程序

javascript - 如何在用于 jQuery-UI 的 2 个 css 样式表之间切换?

c# - 使用正则表达式修剪 html

python - 如何使用 python 捕获正则表达式匹配后的 5 行

javascript - 在 vuejs 上动态监听 v-on