为什么正则表达式/ [_-%] /打破JavaScript?
发布时间:2020-12-14 05:36:35 所属栏目:百科 来源:网络整理
导读:以下 JavaScript不输出任何内容(甚至不是“false”),并确实阻止页面上的任何其他JavaScript运行: var pattern = new RegExp(/[_-%]/);document.write(pattern.test("foo")); 这个正则表达式是做什么的?如果删除了三个字符(_,– 或%)中的任何一个,则一切正
以下
JavaScript不输出任何内容(甚至不是“false”),并确实阻止页面上的任何其他JavaScript运行:
var pattern = new RegExp(/[_-%]/); document.write(pattern.test("foo")); 这个正则表达式是做什么的?如果删除了三个字符(_,– 或%)中的任何一个,则一切正常.如果三个字符的顺序完全改变,一切正常. 解决方法
[]块中的连字符用于范围.所以_ to%无效.
你可以逃脱它: var pattern = new RegExp(/[_-%]/); 或者开始: var pattern = new RegExp(/[-_%]/); 或者到最后: var pattern = new RegExp(/[_%-]/); 由于正则表达式在开始时知道连字符(或者结束,感谢BrunoLM!)意味着字面连字符而不是范围. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |