HTML5验证模式?

时间:2017-07-31 14:34:07

标签: regex html5 validation

我试图为几个不同的输入字段创建模式。前两个字段是名字和姓氏。然后我有性别和年级。这就是我创造的:

<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个章程,包括' .,-的字母章程。性别应允许mfMF。成绩字段应允许大写/小写字母或数字,不超过1个字符。如果有人可以提供帮助,请告诉我。谢谢。

1 个答案:

答案 0 :(得分:1)

您不能在HTML5模式属性中使用正则表达式文字。您需要将A-Za-z字面添加到字符类中。另请注意,隐含了^$个锚点,即HTML5引擎自动将模式括在^(?:)$

因此,您的模式看起来像

pattern=" *[a-zA-Z][A-Za-z' .,-]{0,29} *"
pattern=" *[MmFf]? *"

等等。