2017-04-04 37 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

我更新了我的答案..请再次检查..谢谢 –

相关问题