我试图检查“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/