javascript - 正则表达式中的 JSLint "insecure ^"

标签 javascript regex jslint regex-negation

JSLint 报告以下行的不安全“^”。这是为什么?还是只要我想否定一个字符类,它就会提示?

// remove all non alphanumeric, comma and dash characters
"!$7s-gd,&j5d-a#".replace(/[^\w,\-]/g, '');

最佳答案

只有在底部选择了选项时才会执行此操作:

Disallow insecure . and [^...] in /RegExp/

来自 the docs :

true if . and [^...] should not be allowed in RegExp literals. These forms should not be used when validating in secure applications.

所以回答你的问题,如果你用 ^ 开始一个正则表达式并且它被选中,是的,它每次都会抛出错误。问题在于 unicode 字符,您几乎允许其中的任何内容,并且可能存在安全问题或验证绕过问题。而不是禁止某些东西(可以绕过),只允许哪些字符是有效的。

关于javascript - 正则表达式中的 JSLint "insecure ^",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15937618/

相关文章:

php - 在 PHP 中捕获方括号之间的文本

java - 查找并替换字符串中的字符

javascript - 没有这个我怎么能做 d3 来支持 JSLint

javascript - 是否可以使用外部配置文件以与 JSHint 的 .jshintrc 相同的方式配置 JSLint?

javascript - 两个查询,其中第二个查询依赖于第一个查询

javascript - 使用canvas自动加载图像的功能

javascript - 如何让我点击的div后面的div

c# - 使用正则表达式解析文本文件

javascript - JSLint 消息 : Unused variables

javascript - 模态 - 浏览器后退按钮停留在同一站点上