检查在输入中是否只输入数值。 (jQuery的)
我想检查,如果用户输入正确的手机号码,使用jQuery的帮助,到目前为止,我得到了这个阶段:检查在输入中是否只输入数值。 (jQuery的)
var phone = $("input#phone").val();
if (phone !== "") {
//Check if phone is numeric
$("label#phone_error").show(); //Show error
$("input#phone").focus(); //Focus on field
return false;
}
基本上它检查是否是输入的电话号码,如果这是,我想检查它是否是一个数值,如果它不显示错误消息。 任何人都可以帮助检查,如果它是数字?
尝试......这将确保字符串“手机”只包含数字和将至少包含一个数字
if(phone.match(/^\d+$/)) {
// your code here
}
这是一个很好的选择,因为jQuery.isNumeric()不验证长值(Int64)。 – 2014-05-28 15:33:25
我认为这很重要,关于如何确保电话号码只有数字值(Int64)值的OP原始问题。电话号码表格输入将有30个输入。对于美国的电话输入,一个可能长得可笑的长条目可能会等于...(555)555-5555分机号码:(5555)。因此,我们的示例字符串中总共使用了25个字符的展示位置。一个限制25个位置的注册表是我们需要确保的(int64)不被不恰当地使用该表单的人使用。只是说... – 2017-07-08 09:44:44
http://docs.jquery.com/Plugins/Validation/CustomMethods/phoneUS
检查出来。它应该是你正在寻找的东西。美国手机验证插件jQuery。
如果你想自己做,你会进行大量的工作。查看isNaN()
功能。它告诉你它是不是一个数字。你也想要在正则表达式上进行验证。如果您使用的是RegEx,那么您可以不用isNaN()
,因为无论如何您都会进行测试。
存在jQuery的内置函数来检查这个(ISNUMERIC ),所以请尝试以下操作:
var phone = $("input#phone").val();
if (phone !== "" && !$.isNumeric(phone)) {
//Check if phone is numeric
$("label#phone_error").show(); //Show error
$("input#phone").focus(); //Focus on field
return false;
}
真棒,没有意识到这已被添加到jQuery。应该是'$ .isNumeric'? – 2012-01-31 20:54:10
你是对的,这个函数自v 1.7以来被添加 – 2012-01-31 20:57:32
我试过了,但是如果你有长的值(Int64),它就不起作用,所以只能用于正常的int值。 – 2014-05-28 15:23:39
我用这个:
jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
phone_number = phone_number.replace(/\s+/g, "");
return this.optional(element) || phone_number.length > 9 &&
phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
}, "Please specify a valid phone number");
为未来可见itors,您可以添加此functon,允许用户只输入数字:你只需要添加jQuery和类名的输入检查为http://jsfiddle.net/celia/dvnL9has/2/
$('.phone_number').keypress(function(event){
var numero= String.fromCharCode(event.keyCode);
var myArray = ['0','1','2','3','4','5','6','7','8','9',0,1,2,3,4,5,6,7,8,9];
index = myArray.indexOf(numero);// 1
var longeur= $('.phone_number').val().length;
if(window.getSelection){
text = window.getSelection().toString();
} if(index>=0&text.length>0){
}else if(index>=0&longeur<10){
}else {return false;} });
我用这个来检查所有的文本框有数值:一个
if(!$.isNumeric($('input:text').val())) {
alert("All the text boxes must have numeric values!");
return false;
}
或:
$.isNumeric($("txtBox").val());
可使用jQuery 1.7。
if (!(/^[-+]?\d*\.?\d*$/.test(document.getElementById('txtRemittanceNumber').value))){
alert('Please enter only numbers into amount textbox.')
}
else
{
alert('Right Number');
}
我希望这段代码可以帮到你。
在此代码中,如果条件将返回true,如果有任何数量的小数位数的合法小数。并且提示会提示“正确的号码”信息,否则它会显示一个警告弹出消息“请仅将数字输入到金额文本框中”。
谢谢... :)
这不是一个确切的答案的问题,但对于手机验证另外一个选择,就是要保证数量,你期待的格式被输入。
这是我设计的onInput
事件中的一个函数,它会去除任何非数字输入,并在“右”点自动插入破折号,假定xxx-xxx-xxxx是所需的输出。
<input oninput="formatPhone()">
function formatPhone(e) {
var x = e.target.value.replace(/\D/g, '').match(/(\d{0,3})(\d{0,3})(\d{0,4})/);
e.target.value = !x[2] ? x[1] : x[1] + '-' + x[2] + (x[3] ? '-' + x[3] : '');
}
我用这种验证....检查粘贴的文本,如果它包含字母,显示了用户和错误,则延迟后明确开箱用户检查文字并做适当的修改。
$('#txtbox').on('paste', function (e) {
var $this = $(this);
setTimeout(function (e) {
if (($this.val()).match(/[^0-9]/g))
{
$("#errormsg").html("Only Numerical Characters allowed").show().delay(2500).fadeOut("slow");
setTimeout(function (e) {
$this.val(null);
},2500);
}
}, 5);
});
考虑到电话号码实际上不是一个数字,而是一个包含数字的字符串。 用户将以怪异的方式编写数字,如果你有一个全球性的应用程序,甚至更怪。记住国家代码以00或+开头,+作为电话号码有效,但不是有效的号码。 对不起,如果我没有在这里的主题,但我花了太多的时间填写网站上的“不是一个有效的数字” – 2012-01-31 20:23:03
你也可以去除字符,不是数字,然后构建输入为你希望在你的条件中使用一个使用jquery'.val()'和'.length()'var valLength = $(this).val()。length;'的switch语句。 'switch(valLength){'然后在长度值处添加用于检查数值的大小写,或者使用正则表达式if语句来确定您的值是否为数值,如果长度数组中的值为数值。 – 2017-07-08 10:06:08
为什么/为什么不是regexp比jQuery isNumeric()更好? – 2017-12-21 21:20:41