JavaScript 包含某些正则表达式的缩小失败
JavaScript minification fails containing certain Regex
我无法缩小包含此工作的 javascript 文件 Regex
:
isValid = function (str) {
return !/[~`!#$%\^&*+=\-\[\]\';,/{}|\":<>\?]/g.test(str);
},
错误信息:
/* Minification failed. Returning unminified contents.
(2128,43-44): run-time error JS1004: Expected ';': {
(2128,45-46): run-time error JS1195: Expected expression: |
(2128,46-47): run-time error JS1014: Invalid character: \
(2128,47-48): run-time error JS1014: Invalid character: \
(2128,48-70): run-time error JS1015: Unterminated string constant:
":<>\?]/g.test(str);
(2129,6-7) : run-time error JS1195: Expected expression: ,
(2128,17-43): run-time error JS5017: Syntax error in regular expression:
/[~`!#$%\^&*+=\-\[\]\';,/
*/
捆绑包配置:
bundles.Add(new ScriptBundle("~/bundlesJs/custom").Include(
"~/Scripts/Autogenerated/AntiHacking/antiHackingHelper.js"
));
BundleTable.EnableOptimizations = true;
如何解决?是否有需要转义的字符或我应该包装整个正则表达式?
累积到 ES5 docs,正斜杠不是特殊的正则表达式元字符。
JavaScript 正则表达式引擎始终允许在 RegExp
构造函数符号中使用未转义的 /
和 您可以使用未转义的 /
字符内的正斜杠 类 即使以正则表达式文字表示法编写,请尝试此代码(在 Chrome,FF 中,我也在 IE 11 中检查过):
console.log( '1//25///6'.match(/\w[/]+\w/g) );
console.log( '1//25///6'.match(RegExp("\w/+\w", "g")) );
但是,最佳做法是转义正则表达式定界符以避免任何问题就像你拥有的那样,并保持模式一致和明确。
我无法缩小包含此工作的 javascript 文件 Regex
:
isValid = function (str) {
return !/[~`!#$%\^&*+=\-\[\]\';,/{}|\":<>\?]/g.test(str);
},
错误信息:
/* Minification failed. Returning unminified contents.
(2128,43-44): run-time error JS1004: Expected ';': {
(2128,45-46): run-time error JS1195: Expected expression: |
(2128,46-47): run-time error JS1014: Invalid character: \
(2128,47-48): run-time error JS1014: Invalid character: \
(2128,48-70): run-time error JS1015: Unterminated string constant:
":<>\?]/g.test(str);
(2129,6-7) : run-time error JS1195: Expected expression: ,
(2128,17-43): run-time error JS5017: Syntax error in regular expression:
/[~`!#$%\^&*+=\-\[\]\';,/
*/
捆绑包配置:
bundles.Add(new ScriptBundle("~/bundlesJs/custom").Include(
"~/Scripts/Autogenerated/AntiHacking/antiHackingHelper.js"
));
BundleTable.EnableOptimizations = true;
如何解决?是否有需要转义的字符或我应该包装整个正则表达式?
累积到 ES5 docs,正斜杠不是特殊的正则表达式元字符。
JavaScript 正则表达式引擎始终允许在 RegExp
构造函数符号中使用未转义的 /
和 您可以使用未转义的 /
字符内的正斜杠 类 即使以正则表达式文字表示法编写,请尝试此代码(在 Chrome,FF 中,我也在 IE 11 中检查过):
console.log( '1//25///6'.match(/\w[/]+\w/g) );
console.log( '1//25///6'.match(RegExp("\w/+\w", "g")) );
但是,最佳做法是转义正则表达式定界符以避免任何问题就像你拥有的那样,并保持模式一致和明确。