gpt4 book ai didi

javascript - 为什么正则表达式/[_-%]/会破坏 JavaScript?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:37:37 24 4
gpt4 key购买 nike

以下 JavaScript 不输出任何内容(甚至不输出“false”),并且确实会阻止页面上的任何其他 JavaScript 运行:

var pattern = new RegExp(/[_-%]/);
document.write(pattern.test("foo"));

执行此操作的正则表达式是什么?如果三个字符(_、- 或 %)中的任何一个被删除,一切正常。如果三个字符的顺序完全改变,一切正常。

最佳答案

[ ] block 中的连字符用于范围。所以 _ to % 是无效的。你可以逃避它:

var pattern = new RegExp(/[_\-%]/);

或移至开头:

var pattern = new RegExp(/[-_%]/);

或者到最后:

var pattern = new RegExp(/[_%-]/);

因为正则表达式知道开头(或结尾,感谢 BrunoLM!)的连字符表示文字连字符而不是范围。

关于javascript - 为什么正则表达式/[_-%]/会破坏 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5999531/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com