2017-07-31 88 views
1

我正在尝试为几个不同的输入字段创建模式。前两个字段是名字和姓氏。然后我有性别和年级。这是我创建的:HTML5验证模式?

<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

您不能在HTML5模式属性中使用正则表达式文字。 –

+0

@WiktorStribiżew我可以使用什么?你能举个例子吗? –

+0

例如'pattern =“* [a-zA-Z] [A-Za-z'。, - ] {0,29} *”'为第一个。 –

回答

1

不能在HTML5模式属性中使用正则表达式文字。你需要从字面上加A-Za-z到字符类。还要注意的是暗示了^$锚点,即图案由HTML5引擎自动包含^(?:)$

因此,你的模式会像

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

等。