我有一个表单,我希望可以为除其中一个字段(显示名称)之外的所有字段创建 html 模式。 要求如下:
我可以编写满足大部分要求的正则表达式,但不包括特殊字符。
^[A-Z][a-z]*( [A-Z][a-z]*)*$
但是,我想在任何地方使用特殊字符和数字(除了字段的第一个字母),问题就发生在这里, 这是图案:
^[A-Z][a-z0-9@()\[\]{}._\-!#$%&'*+\/=?^`|~]*( [A-Z][a-z0-9@()\[\]{}._\-!#$%&'*+\/=?^`|~]*)*$
我在控制台上收到此错误:
this causing this error: Unable to check <input pattern=‘^[A-Z][a-z0-9@()\[\]{}._\-!#$%&'*+\/=?^|~]*( [A-Z][a-z0-9@()\[\]{}._\-!#$%&'*+\/=?^|~]*)*$’> because ‘/^[A-Z][a-z0-9@()\[\]{}._\-!#$%&'*+\/=?^|~]*( [A-Z][a-z0-9@()\[\]{}._\-!#$%&'*+\/=?^|~]*)*$/v’ is not a valid regexp: invalid character in class in regular expression
我尝试了很多其他的事情,但是使用特殊字符对我来说是一个麻烦。您能告诉我正确的模式是什么吗? 谢谢
问题在于正则表达式中转义和定义特殊字符的方式。具体来说,字符集中的 ] 字符(括在方括号 [] 中)必须正确转义,因为它是表示字符集结尾的元字符。
这是更正后的正则表达式:
^[A-Z][a-z0-9@()[\]{}._\-!#$%&'*+/=?^`|~]*( [A-Z][a-z0-9@()[\]{}._\-!#$%&'*+/=?^`|~]*)*$