2017-07-31 86 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]? *" 

等。