2015-08-28 310 views
1

我有一個帶有一些文本字段的頁面,我想限制用戶輸入,所以我使用了html5模式屬性,像這樣:html pattern =「[A-Za-z] {50}」表示有效輸入無效

<input name="team_name" type="text" pattern="[A-Za-z]{50}" value="<?php echo $team_name;?>"> 

這應該讓我的b/W AA-ZZ只輸入字母的名字,但是當我試圖進入一個有效的名字,但它仍然告訴我符合要求的格式。 我錯過了什麼?爲什麼總是告訴我我的輸入是無效的?

+1

嘗試'模式= 「^ [A-ZA-Z] {1,50} $」' –

回答

5

規則[A-Za-z]{50}將使名稱只有當它包含確切50字母可接受。

[A-Za-z]{10,50} 

這將使名稱最少10個,最多50個字符。 根據您的要求更新表達式。

演示:

input:invalid { 
 
    color: red; 
 
}
<form> 
 
    <input name="team_name" type="text" pattern="[A-Za-z]{10,50}" value=""> 
 
    <br /> 
 
    <input type="submit"> 
 
</form>

+4

驗證模式並不需要開始和結束錨。 – JJJ

5

在正則表達式模式{50}意味着恰好 50個字符。這不太可能是你想要的。

如果要將輸入限制爲最多50個字符,請使用maxlength屬性。

<input name="team_name" type="text" pattern="[A-Za-z]+" maxlength="50"> 
+0

之前,我只是'pattern =「[A-Za-z]」'作爲一個表達式,並沒有工作 – Oliver

+0

我已經更新了答案:你需要指定你接受多個字符。 – JJJ

+0

我只是在做一些測試,它接受引號'和'不應該也是捕捉它們嗎? – Oliver