2016-02-18 59 views
1

美好的一天!在HTML中使用'pattern ='的問題

我無法使用模式輸入屬性而無需使用CSS或JavaScript。

這是我使用至今用戶名代碼:

用戶名 必須由4至15個字符只有

pattern="[A-Za-z0-9_]|.{4,15}"

的問題是,輸入仍然接受特殊字符如「*」

如何捕捉這些特殊字符字符?

+1

*用戶名必須包含4至15個字符僅* - 然後,只需使用'圖案= 「[A-ZA-Z0-9 _] {4,15}」'或'甚至pattern =「\ w {4,15}」'','| .'將所有內容破壞爲'.'匹配*任何字符而不是換行*。 –

回答

1

用戶名必須包含唯一

然後,只需使用pattern="[A-Za-z0-9_]{4,15}"甚至pattern="\w{4,15}"(因爲[A-Za-z0-9_] = \w在JS)4到15個字符。

的是破壞圖案作爲.匹配任何字符,但換行符[A-Za-z0-9_]|.{4,15}匹配一個單詞字符串或包含任意的字符串,字符4至15次出現。

input:valid { 
 
    color: green; 
 
} 
 
input:invalid { 
 
    color: red; 
 
}
<form name="form1"> 
 
<input pattern="\w{4,15}" title="4 to 15 word characters are only allowed!"/> 
 
<input type="Submit"/> 
 
</form>

+1

它的工作原理!但我有一個問題..當我應用css時,文本上的佔位符變爲紅色..有沒有辦法先禁用css,直到用戶有輸入然後驗證它?因爲設計和CSS不是很好的結合。屏幕截圖:http://i.imgur.com/ZJk4qan.png – MeSH

+0

我認爲你可以刪除該CSS - 它僅用於測試目的(我只是用它來演示)。一旦你點擊提交,就會出現HTML5驗證錯誤。 –

+0

電話號碼怎麼樣?在我看來,糾正我,如果我錯了,這將需要一個數據庫來檢查,如果第一個4-5位數字是有效的:就像在菲律賓我們的國家代碼是63,這些是我們使用的一些有效的電話號碼:0906或63906,0917或63917等是可能的在pattern =「」? – MeSH