为什么正则表达式之间的结果不同
基本上,如果我们查看变量正则表达式,它与控制台中写入的内容相同。但结果不同。
预期结果应该是
new RegExp('^(?!\\s*$)[A-Za-z0-9\\s.,-]*$', 'g').test(' 1');
true
更新
我看到了区别,但是如何在不转义反斜杠的情况下传递正则表达式值
最终... JSON 数据导致 HTML 破坏而不是表达式,我认为 '\' 破坏了 HTML,我添加了 '\' 并修复了 JSON 数据,但在尝试评估值时破坏了结果。
我必须修复 JSON 数据才能解析“\”,现在 REGEXP 恢复正常。
最佳答案
因为new RegExp('\\') !=/\\/
,它等于/\/
。
在正则表达式中将 \\
替换为 \
即可使其工作:
/^(?!\s*$)[A-Za-z0-9\s.,-]*$/g.test(' 1');
// => true
关于javascript - 正则表达式不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32365646/