2017-04-04 62 views
1

我想創建一個文本字段,其中一個可以鍵入他/她的手機號碼只有10位數字。沒有間距短劃線昏迷或字母表。我嘗試從給定的鏈接使用以下正則表達式,但它不起作用。我正在使用chrome,甚至嘗試過小提琴手。 我參考了this的代碼。如何限制只有10位數字字段

<input type="number" pattern="^[0-9]{1,10}$" title="adc" />

+0

您需要使用'type =「text」'。並刪除'^'和'$',並且由於您需要10位數字,所以用'{10}'代替'{1,4}'。 –

+0

編輯我的問題與我的代碼 –

+0

使用這個我不僅限於正確的10位數..我可以寫多少,因爲我想:(這是問題。我可以告訴你的提琴手,如果你想 –

回答

2

您需要使用type="text",然後使用\d{10}正則表達式。請注意,當您的<input>類型號碼時,正則表達式驗證不起作用。此外,pattern屬性中的正則表達式默認爲錨定,這就是爲什麼您不需要錨點(字符串的開始爲^,字符串的末尾爲$)。 pattern="\d{10}"正則表達式將被翻譯成/^(?:\d{10})$/模式,該模式匹配由正好10個數字組成的字符串。

input:valid { 
 
    color: navy; 
 
} 
 
input:invalid { 
 
    color: red; 
 
}
<form name="form1"> 
 
<input type="text" pattern="\d{10}" title="Error: 10 digits are required." onkeypress="return (event.charCode == 8 || event.charCode == 0) ? null : event.charCode &gt;= 48 && event.charCode &lt;= 57" /> 
 
<input type="Submit"/> 
 
</form>

要禁止一個非數字輸入,添加onkeypress="return (event.charCode == 8 || event.charCode == 0) ? null : event.charCode >= 48 && event.charCode <= 57"<input>元件。

+0

這裏是你在js小提琴的工作,它不工作,也接受字母 https://jsfiddle.net/z5om6ozh/1/ –

+0

你可以*類型*任何東西,但不*提交*任何東西。這是'pattern'屬性的用途。這是一個*最終的,即時提交*輸入驗證。不允許使用正則表達式來實現非數字輸入,請參閱我的更新。 –

+0

好的這是有道理的..我會用這個。作爲替代感謝:) –

0

嘗試使用這樣

[RegularExpression("[0-9]{10}", ErrorMessage = "Please enter valid Number")] 
+0

我不能在HTML5中執行它嗎? –

+0

你可以,但是在後端而不是前端進行適當的ASP.NET驗證。通過使用前端驗證,用戶可以輕鬆修改dom與瀏覽器的開發者工具並提交錯誤的數據 –

+0

這是一個很好的提示,但這是一個個人內部系統我只是想知道這是否可能。我無法做到這一點。因此在這裏問。:) –

0

屬性驗證它在控制器上使用控制器的以下ATTR: -

[正則表達式(「[O- 9] {10}「,ErrorMessage =」輸入有效號碼「)]

或者: 1-化妝輸入字段的類型是數

2-類型下面的js

$( '#idInputTxt')按鍵(函數(e)中{

if (this.value.length == 10|| (e.which > 57 && e.which < 65) || 
    (e.which > 90 && e.which < 97) || (e.which > 122) ||(e.which < 48 || e.which > 57)) 
    { 
     e.preventDefault(); 
    } 
}); 

+0

好吧,我會如果沒有解決方案在HTML5中做?有沒有?請 –

+0

我更新了我的答案..請再次檢查..謝謝 –