Firefox 错误:无法检查输入,因为该模式不是有效的正则表达式:正则表达式中的身份转义无效

2024-01-04

我正在使用正则表达式模式匹配进行 HTML5 表单验证。最新版本的 Firefox 给我一个错误。我只是在 Firefox 46 中才开始看到这一点。我认为这在早期的 Firefox 版本中不是问题。

无法检查<input pattern='[\@\%]'>因为该模式不是有效的正则表达式:正则表达式中的身份转义无效

由这个非常简单的测试用例引起:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
  </head>
  <form>
    <input pattern="[\@\%]">
  </form>
</html>

为什么转义这些字符被视为错误?我总是在正则表达式中转义除数字或字母之外的所有内容。除了这个版本的 Firefox 之外,我从来没有抱怨过这种类型的转义字符。

当我学习正则表达式时,我被告知除了数字或字母之外的所有内容都可能具有特殊含义。即使现在没有,也可能会在未来的版本中出现,所以最好避开它们。这不是真的吗?

是否有一个我不应该在 Firefox 中转义的字符列表?


这是由于以下变化:错误 1227906 - HTMLpattern应设置属性u正则表达式的标志 https://bugzilla.mozilla.org/show_bug.cgi?id=1227906

正如有人已经说过的,你不必逃避这些角色。只需使用:

<input pattern="[@%]">
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Firefox 错误:无法检查输入,因为该模式不是有效的正则表达式:正则表达式中的身份转义无效 的相关文章

随机推荐