我正在使用正则表达式模式匹配进行 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(使用前将#替换为@)