加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

为什么正则表达式/ [_-%] /打破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!)意味着字面连字符而不是范围.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读