这与此问题相同的问题有关:
Firefox 错误:无法检查输入,因为该模式不是有效的正则表达式:正则表达式中的身份转义无效
在<input>
模式属性中使用转义字符时,Firefox 会向控制台抛出以下错误:
无法检查
<input pattern='^[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEFa-zA-Z\s\'-]{1,50}$'>
,因为模式不是有效的正则表达式:正则表达式中的无效身份转义
因此,当在字段上使用pattern
属性时<input>
,不再需要转义 unicode 字符。在这种情况下,用户只需要停止转义他们的字符并更改\@\%
为@%
,问题就解决了。
我有这个更复杂的正则表达式模式,我该如何改变它以在 Firefox 中工作?
<input type="text" pattern="^[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEFa-zA-Z\s\'-]{1,50}$">
本质上,只要所有字符都在这些范围内,它就允许长度在 1..50 个字符之间的任何字符串:
- \u00A0-\uD7FF
- \uF900-\uFDCF
- \uFDF0-\uFFEF
- 阿兹
- AZ
以及空格、撇号和连字符。快速搜索会发现\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEFa
它的一部分相当广泛地用于各种正则表达式。我只是不知道使用什么来代替这里的转义 unicode 字符引用。