函数没有拿起验证的第二部分
问题描述:
我正在进行表单验证,并且我有一套逻辑结构设置和一组验证函数。一切都在努力达到必须验证社会安全号码的最后一组逻辑结构。函数没有拿起验证的第二部分
下面是验证功能
//check if an input field is null
function checkIsNull(s){
if(s == ''){
return true;
}else{
return false;
}
}
//check if a phone number entered is valid
function validatePhoneNumber(s){
var str = s;
str = str.replace(/[^0-9]/g, '');
if(str.length != 10 || str == ""){
return false;
}
else{
return true;
}
}
//check if something only has numbers in it
function onlyNumbers(num){
var res = /\D+/g.test(num);
return res;
}
function validateEmail(s){
var str = s;
var res = str.match(/[!#$%&'*+-\/=?^_`{|}~a-zA-Z0-9.]*@\w+\.\w+/g);
if(res){
return true;
}else{
return false;
}
}
的电话号码和社会安全号码验证方式不尽相同,但在与社会安全号码我输入的字母不拿起输入字段中的字母。
有关于此的任何想法,还是有人可以指出我在正确的方向吗?
答
函数onlyNumbers实际上使用'\ D'而不是'\ d','\ D'表示所有非数字的非数字,正如您所想象的那样。
答
我解决了我自己的问题。发生了什么事情是,当检查电话号码,出生日期和ssn的循环被迭代时,如果最后一项签出了错误类将被删除。因此,当发现错误以保持显示正确时,我必须在这些循环中添加中断。
实际上,否\ D会检查它是否包含任何不是数字的东西。所以它的工作原理就像是假设的那样。我解决了这个问题。当迭代.input-group循环时,我需要添加中断。 – 2014-09-26 18:33:09
函数被称为onlyNumber,并且您正在验证字符串是否为非数字,这是我的观点。不管怎么样,放置休息并不是一件好事 – 2014-09-26 18:34:36
你的观点是无效的。正则表达式模式将抓住任何标识,无论它是否是一个字符串。阅读正则表达式模式以及它们如何处理信息。如果您可以确定一种更好的方式来验证该信息而不使用中断,请给我看看。 – 2014-09-26 18:39:19