JavaScript: The Good Parts p41包含以下正则表达式:
/&([^&;]+);/g
它用于查找所有 HTML 实体,例如>
. 如果使用 JSLint 验证此代码,它会报告
不安全的'^'
虽然严格来说这是正确的,但我仍然认为可以忽略它。或不?
JavaScript: The Good Parts p41包含以下正则表达式:
/&([^&;]+);/g
它用于查找所有 HTML 实体,例如>
. 如果使用 JSLint 验证此代码,它会报告
不安全的'^'
虽然严格来说这是正确的,但我仍然认为可以忽略它。或不?
警告正则表达式的匹配可能超出预期,警告它是正确的;它会匹配这样的东西“<code>&abc def ghi;” 尽管它们是非法的实体名称。另一方面,在这种情况下它可能不是一个严重的问题(尽管它严格取决于您匹配后的操作);你可以很容易地在 JSLint 中禁用它。
更好的 RE 将是:
/&(#[0-9]+|#[xX][a-fA-F0-9]+|[a-zA-Z0-9]+);/
我不记得实体名称中允许使用哪些其他字符,唉。
提供实际问题的答案。如果您知道它为什么不安全并且可以接受,请忽略它。如果您对 JSLint 的抱怨感到恼火,请修复它。;)
我认为它足够安全。