Javascript 正则表达式将超过10个数字
要与正则表达式匹配,它必须是一个数字,并且不能超过10个数字。别的什么都不要显示Javascript 正则表达式将超过10个数字,javascript,jquery,regex,Javascript,Jquery,Regex,要与正则表达式匹配,它必须是一个数字,并且不能超过10个数字。别的什么都不要显示 match(/[^0-9]|[0-9]{10,80}/) 第一部分有效,这意味着它不是一个数字,但第二部分不起作用,如果它大于10 我可以用另一种方法,但我想用正则表达式。。谢谢大家! (function($){ $('input').on( 'keypress', function(e){ var char = String.fromCharCode(e.keyCode); i
match(/[^0-9]|[0-9]{10,80}/)
第一部分有效,这意味着它不是一个数字,但第二部分不起作用,如果它大于10
我可以用另一种方法,但我想用正则表达式。。谢谢大家!
(function($){
$('input').on( 'keypress', function(e){
var char = String.fromCharCode(e.keyCode);
if ( char.match(/[^0-9]|[0-9]{10,80}/) ) {
e.preventDefault();
}
});
})(jQuery)
HTML:
<input type="text">
您正在检查
char
是否与正则表达式匹配,但您的意思是检查输入的全部内容是否与正则表达式匹配。如果将id=“myinput”
添加到
中,并在javascript中添加
var inputdata = document.getElementById("myinput").value;
然后,您可以检查inputdata
是否与您的正则表达式匹配,它是否起作用
另外,您正在检查{10,80}
,这意味着介于10
和80
之间,但您也可以将其更改为{10,}
,这意味着10
或更多
嗯<代码>
?您的意思是,如果值仅为数字且长度为0到10,则应继续,否则将阻止默认值?您每次检查一个字符,因此{10,80}
设置是多余的。您需要整体检查该值。@NiettheDarkAbsolmaxlength
不适用于数字input@RoryMcCrossan谢谢,这就是问题所在。我现在通过在值中添加另一个if检查来解决这个问题。