我试图为几个不同的输入字段创建模式。前两个字段是名字和姓氏。然后我有性别和年级。这就是我创造的:
<input type="text" name="lname" id="lname" value="" size="20" maxlength="30" title="Maximum length 30 characters." pattern="/^ *[a-z][a-z' .,-]{0,29} *$/i" required />
<input type="text" name="fname" id="fname" value="" size="20" maxlength="30" title="Maximum length 30 characters." pattern="/^ *[a-z][a-z' .,-]{0,29} *$/i" required />
<input type="text" name="gender" id="gender" value="" size="1" maxlength="1" title="Maximum length 1 character." pattern="/^ *([M|F])? *$/i" required />
<input type="text" name="garde" id="grade" value="" size="2" maxlength="2" title="Maximum length 2 characters." pattern="/^ *(0?[0-9]|1[0-2]|[A-Z]{1,2})? *$/i" required />
所有正则表达式都不起作用。我不确定我的代码中是否使用了正确的语法或其他问题。对于名字和姓氏字段,最多允许30个章程,包括' .,-
的字母章程。性别应允许m
或f
或M
或F
。成绩字段应允许大写/小写字母或数字,不超过1个字符。如果有人可以提供帮助,请告诉我。谢谢。
答案 0 :(得分:1)
您不能在HTML5模式属性中使用正则表达式文字。您需要将A-Za-z
字面添加到字符类中。另请注意,隐含了^
和$
个锚点,即HTML5引擎自动将模式括在^(?:
和)$
。
因此,您的模式看起来像
pattern=" *[a-zA-Z][A-Za-z' .,-]{0,29} *"
pattern=" *[MmFf]? *"
等等。