表单字段需要 HTML 正则表达式模式

问题描述 投票:0回答:1

我有一个表单,我希望可以为除其中一个字段(显示名称)之外的所有字段创建 html 模式。 要求如下:

  1. 每个单词的第一个字符应大写,后面的字符应大写 该单词的字母应该小写
  2. 字段的起始字符应该是大写字母
  3. 不能有连续空格
  4. 以下单词的第一个字母可以是任何类型的字符
  5. 除了字段的起始字符之外,使用任何类型的字符都是免费的。

我可以编写满足大部分要求的正则表达式,但不包括特殊字符。

^[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

我尝试了很多其他的事情,但是使用特殊字符对我来说是一个麻烦。您能告诉我正确的模式是什么吗? 谢谢

html regex forms regression
1个回答
0
投票

问题在于正则表达式中转义和定义特殊字符的方式。具体来说,字符集中的 ] 字符(括在方括号 [] 中)必须正确转义,因为它是表示字符集结尾的元字符。

这是更正后的正则表达式:

^[A-Z][a-z0-9@()[\]{}._\-!#$%&'*+/=?^`|~]*( [A-Z][a-z0-9@()[\]{}._\-!#$%&'*+/=?^`|~]*)*$
© www.soinside.com 2019 - 2024. All rights reserved.