具有相同正则表达式的不同行为

时间:2017-10-25 10:39:07

标签: javascript regex

我有一个正则表达式,它应该检查HTTP标头中允许的字符。我用它来测试将被摧毁的字符串。

我的问题是,当我使用文字版本时,我从正则表达式的Object版本获得了不同的结果:

这是一个证明问题的JSFiddle:https://jsfiddle.net/JosselinTD/tkxhk6fn/

var regexObject = new RegExp("^[A-z\u00C0-\u00ff\u0180-\u024f0-9\s'\.,-\/#!$%\^&\*\-_~\|`+]+$", "gi");
var regexLiteral = /^[A-z\u00C0-\u00ff\u0180-\u024f0-9\s'\.,-\/#!$%\^&\*\-_~\|`+]+$/gi;

var stringTest = 'HackForGood 2016 - León'; // More strings in the fiddle

alert('Test with object : ' + regexObject.test(stringTest) + '\nTest with literal : ' + regexLiteral.test(stringTest));

是否存在行为差异的原因?

0 个答案:

没有答案