前端知识整理:js一些常用的校验 js表单校验(一)

 1. 校验字符串是否有效(null/空串/undefined);

/* 
 * 校验字符串是否有效(null/空串/undefined) 
 */  
const isInvalid = (str) => {  
    return str == null || str == "" || str == undefined;
}  

 2. 校验是否为纯数字

/* 
 * 校验是否为纯数字 
 * js的isNaN函数 
 */  
const isNumber = (num) => { 
    return !isNaN(num)
} 

 3. 校验是否为纯数字(正则)

/* 
 * 校验是否为纯数字(正则) 
 */  
const isNumber = (num) => {  
    const reg = /^[0-9]+.?[0-9]*$/; //判断字符串是否为数字 (判断正整数 /^[1-9]+[0-9]*]*$/)  
    return reg.test(num);  
} 

 4. 检验手机号 

/* 
 * 检验手机号 
 */  
var isPhone = (phone) => {  
    var reg = /^1[3|4|5|7|8][0-9]{9}$/; //验证规则,第一位是【1】开头,第二位有【3,4,5,7,8】,第三位及以后可以是【0-9】  
//  var reg = /^1[0-9]{10}$/;//不验证第二位,防止几年后新增号码段  
    if(!reg.test(phone)){  
        return false;  
    }  
    return true;  
}  

 5. 验证座机号

/* 
 * 验证座机号 
 */  
var isTel = (tel) => {  
    var reg = /^(\d3,4|\d{3,4}-)?\d{7,8}$/;  
    if (!reg.test(tel)) {  
        return false;  
    }  
    return true;  
} 

6. 校验ip

/* 
 * 校验ip 
 */  
const isIp = (ip) => {    
    const reSpaceCheck = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;    
    if (reSpaceCheck.test(ip)){    
        ip.match(reSpaceCheck);    
        if (RegExp.$1 <= 255 && RegExp.$1 >= 0 && RegExp.$2 <= 255 && RegExp.$2 >=0    
          &&RegExp.$3 <= 255 && RegExp.$3 >= 0 && RegExp.$4 <= 255 && RegExp.$4>=0){    
            return true;     
        }else{    
            return false;    
        }    
    }else{    
        return false;    
    }    
}

 7. 检验url地址

/* 
 * 检验url地址 
 */  
const isUrl = (url) => {  
    const reg = /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/;  
    if (!reg.test(url)) {  
        return false;  
    }  
    return true;  
} 


/**
 * 完美判断是否为网址
 */
const isURL = (strUrl) => {
    const regular = /^\b(((https?|ftp):\/\/)?[-a-z0-9]+(\.[-a-z0-9]+)*\.(?:com|edu|gov|int|mil|net|org|biz|info|name|museum|asia|coop|aero|[a-z][a-z]|((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]\d)|\d))\b(\/[-a-z0-9_:\@&?=+,.!\/~%\$]*)?)$/i;
    if (regular.test(strUrl)) {
        return true;
    }
    else {
        return false;
    }
}

 8. 检验身份证 

/* 
 * 检验身份证 
 */  
const isIdCard = (idCard) => {  
    var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}  
    var iSum = 0;  
    var info = "";  
    if (!/^\d{17}(\d|x)$/i.test(idCard)){  
        return false;//身份证长度或格式错误  
    }  
    idCard = idCard.replace(/x$/i, "a");  
    if (aCity[parseInt(idCard.substr(0, 2))] == null){  
        return false;//身份证地区非法;  
    }  
    var sBirthday = idCard.substr(6, 4) + "-" + Number(idCard.substr(10, 2)) + "-" + Number(idCard.substr(12, 2));  
    var d = new Date(sBirthday.replace(/-/g, "/"));  
    if (sBirthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate())){  
        return false;//身份证上的出生日期非法;  
    }  
    for (var i = 17; i >= 0; i--){  
        iSum += (Math.pow(2, i) % 11) * parseInt(idCard.charAt(17 - i), 11);  
    }  
    if (iSum % 11 != 1){  
        return false;//身份证号非法;   
    }  
      
    return true;  
      
}

9. 检验邮箱

/* 
 * 检验邮箱 
 */  
const isEmail = function(emailStr){  
    const reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;   
    if(!reg.test(emailStr)){  
        return false;  
    }  
    return true;  
}
发布了71 篇原创文章 · 获赞 47 · 访问量 10万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览