【发布时间】:2016-12-08 06:35:05
【问题描述】:
我无法缩小包含此工作 Regex 的 javascript 文件:
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;
如何解决?是否有需要转义的字符或者我应该包装整个正则表达式?
【问题讨论】:
-
哦,也许我只是逃过一劫。我想我需要
`before/`[~!#$%\^&*+=\-[]\\';,\/{}|\\":\?]` 我在这里试过了:regex101.com -
是的,做到了。我从一个 SO 答案中复制了正则表达式并获得了很多票,并且一年前我经常使用正则表达式。下次我将在使用正则表达式regex101.com 之前对其进行测试。 regex101.com 有易于阅读的错误消息。
-
重点是你实际上可以在字符类非转义中使用
/,但不是在所有浏览器中。
标签: javascript asp.net regex asp.net-mvc bundling-and-minification