JS正则校验

/**
    用途:检查输入字符串是否为空或者全部都是空格
    输入:str:字符串
    返回:
    如果全是空返回true,否则返回false
*/
function isNull(str) {
    if (str == "") return true;
    var regu = "^[ ]+$";
    return regu.test(str);
}

/**
    用途:检查输入对象的值是否符合E-Mail格式
    输入:email 输入的字符串
    返回:如果通过验证返回true,否则返回false
*/
function isEmail(email){
    var emailReg = /^[-_A-Za-z0-9][email protected]([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;
    return emailReg.test(str);
}

/**
    用途:检查输入非负整数(正整数、0)
    输入:integer:字符串
    返回:如果通过验证返回true,否则返回false
*/
function checkInteger(integer) {
    var integerReg = /^\d+$/;
    return integerReg.test(integer);
}

/**
    用途:检查输入正整数
    输入:positiveInteger:字符串
    返回:如果通过验证返回true,否则返回false
*/
function checkPositiveInteger(positiveInteger) {
    var positiveIntegerReg = /^[1-9][0-9]*$/;
    return positiveIntegerReg.test(positiveInteger);
}

/**
    用途:非负浮点数(正浮点数、0)
    输入:positiveFloating:字符串
    返回:如果通过验证返回true,否则返回false
*/
function checkFloating(floating) {
    var floatingReg = /^\d+(\.\d+)?$/;
    return floatingReg.test(floating);
}

/**
    用途:正浮点数
    输入:floating:字符串
    返回:如果通过验证返回true,否则返回false
*/
function checkPositiveFloating(positiveFloating) {
    var positiveFloatingReg = /^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
    return positiveFloatingReg.test(positiveFloating);
}

/**
    用途:检查输入的Email信箱格式是否正确
    输入:email:字符串
    返回:如果通过验证返回true,否则返回false
*/
function checkEmail(email) {
    var emailReg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
    return emailReg.test(strEmail);
}

/**
    用途:检查输入的电话号码格式是否正确
    输入:phone:字符串
    返回:如果通过验证返回true,否则返回false
*/
function checkPhone(phone) {
    var phoneRegWithArea = /^[0][1-9]{2,3}-[0-9]{5,10}$/;
    var phoneRegNoArea = /^[1-9]{1}[0-9]{5,8}$/;
    if (phone.length > 9) {
        return phoneRegWithArea.test(phone);
    } else {
        return phoneRegNoArea.test(phone);
    }
}

/**
    用途:检查输入手机号码是否正确
    输入:mobile:字符串
    返回:如果通过验证返回true,否则返回false
*/
function checkMobile(mobile) {
    var mobileReg = /^[1][3,4,5,7,8][0-9]{9}$/;
    return mobileReg.test(mobile);
}

/**
    用途:密码(数字、字母、符号至少两种,6~20位,且必须以字母开头)
    输入:password:字符串
    返回:如果通过验证返回true,否则返回false
*/
function checkPassword(password) {
    var passwordReg = /^(?![[email protected]_])(?![a-zA-Z]+$)[[email protected]_]{6,20}$/;
    return passwordReg.test(password);
}

/**
    用途:中文、数字、字母、-、_
    输入:cn:字符串
    返回:如果通过验证返回true,否则返回false
*/
function checkCN(cn) {
    var cnReg = /^[\u4e00-\u9fa5_a-zA-Z0-9-]+$/;
    return cnReg.test(cn);
}

/**
    检查输入的字符是否具有特殊字符
    输入:quote:字符串
    返回:true 或 flase; true表示包含特殊字符
    主要用于添加地址的时候验证
*/
function checkQuote(quote) {
    var items = new Array("~", "`", "!", "@", "#", "$", "%", "^", "&", "*", "{", "}", "[", "]");
    items.push(":", ";", "‘", "|", "\\", "<", ">", "?", "/", "<<", ">>", "||", "//",".");
    items.push("admin", "administrators", "administrator", "管理员", "系统管理员");
    items.push("select", "delete", "update", "insert", "create", "drop", "alter", "trancate");
    str = str.toLowerCase();
    for (var i = 0; i < items.length; i++) {
        if (quote.indexOf(items[i]) >= 0) {
            return true;
        }
    }
    return false;
}

/**
    检查输入的字符是否具有数字
    返回:true包含数字
*/
function checkIsContainNum(num) {
    var reg = /^(?=.*\d.*\b)/;
    return reg.test(num);
}

/**
    身份证号合法性验证
    支持15位和18位身份证号
    支持地址编码、出生日期、校验位验证
*/
function IdentityCodeValid(code) {
    var city = { 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 pass = true;
    if (!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(code)) {
        pass = false;
    } else if (!city[code.substr(0, 2)]) {
        pass = false;
    } else {
        //18位身份证需要验证最后一位校验位
        if (code.length == 18) {
            code = code.split(‘‘);
            //∑(ai×Wi)(mod 11)
            //加权因子
            var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
            //校验位
            var parity = [1, 0, ‘X‘, 9, 8, 7, 6, 5, 4, 3, 2];
            var sum = 0;
            var ai = 0;
            var wi = 0;
            for (var i = 0; i < 17; i++) {
                ai = code[i];
                wi = factor[i];
                sum += ai * wi;
            }
            var last = parity[sum % 11];
            if (parity[sum % 11] != code[17]) {
                pass = false;
            }
        }
    }
    return pass;
}

/**
     对Date的扩展,将 Date 转化为指定格式的String
    月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
    年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
    例子:
    (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
    (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18
 */
Date.prototype.Format = function (fmt) { //author: meizz
    var o = {
        "M+": this.getMonth() + 1,                 //月份
        "d+": this.getDate(),                    //日
        "h+": this.getHours(),                   //小时
        "m+": this.getMinutes(),                 //分
        "s+": this.getSeconds(),                 //秒
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度
        "S": this.getMilliseconds()             //毫秒
    };
    if (/(y+)/.test(fmt))
        fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        if (new RegExp("(" + k + ")").test(fmt))
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}

/**
    调整日期格式为:"年-月-日"格式
 */
function ChangeDateFormat(jsondate) {
    jsondate = jsondate.replace("/Date(", "").replace(")/", "");
    if (jsondate.indexOf("+") > 0) {
        jsondate = jsondate.substring(0, jsondate.indexOf("+"));
    } else if (jsondate.indexOf("-") > 0) {
        jsondate = jsondate.substring(0, jsondate.indexOf("-"));
    }
    var date = new Date(parseInt(jsondate, 10));
    var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
    var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
    return date.getFullYear() + "-" + month + "-" + currentDate;
}

/**
    将毫秒日期数据转为指定日期格式
    转化为:"月-日"格式
 */
function formatDate(now) {
    now = now.replace("/Date(", "").replace(")/", "");//去掉毫秒格式数据的Date()格式
    now = new Date(parseInt(now));
    var year = now.getYear() + 1900;
    var month = now.getMonth() + 1;
    var date = now.getDate();
    var hour = now.getHours();
    var minute = now.getMinutes();
    var second = now.getSeconds();
    return month + "-" + date;
}

/**
    将毫秒日期数据转为指定日期格式
    转化为:"年-月-日"格式
 */
function formatDate2(now) {
    now = now.replace("/Date(", "").replace(")/", "");//去掉毫秒格式数据的Date()格式
    now = new Date(parseInt(now));
    var year = now.getYear() + 1900;
    var month = now.getMonth() + 1;
    var date = now.getDate();
    var hour = now.getHours();
    var minute = now.getMinutes();
    var second = now.getSeconds();
    return year + "-" + month + "-" + date;
}
时间: 2024-10-09 21:38:02

JS正则校验的相关文章

js正则匹配两位小数

今天写一个用js正则校验最多保留两位小数的格式. a = /^\d+|\d+\.\d{1,2}$/; 测试 a.test(1.222); 结果:true 一下蒙了,怎么可能,最后找了好久,原来需要把^和$中间的格式包起来 a = /^(\d+|\d+\.\d{1,2})$/; 测试a.test(1.222); 结果:false 分析:如果不用括号包起来,则匹配^\d+或\d+\.\d{1,2} 1.222一下就匹配了^\d,因为只要以数字开头就匹配嘛 最终从网上找到一个更好的匹配两位小数的正则:

js正则验证方法大全

js正则验证方法大全 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83

js正则实现二代身份证号码验证详解

js正则实现二代身份证号码验证详解 根据[中华人民共和国国家标准 GB 11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码. 地址码表示编码对象常住户口所在县(市.旗.区)的行政区划代码. 出生日期码表示编码对象出生的年.月.日,其中年份用四位数字表示,年.月.日之间不用分隔符. 顺序码表示同一地址码所标识的区域范围内,对同年.月.日出生的人员

常用JS正则匹配函数

//校验用户名:只能输入1-30个字母 function isTrueName(s) { var patrn=/^[a-zA-Z]{1,30}$/; if (!patrn.exec(s)) return false return true } //校验密码:只能输入6-20个字母.数字.下划线 function isPasswd(s) { var patrn=/^(/w){6,20}$/; if (!patrn.exec(s)) return false return true } //校验普通

js 正则 以字母开头必须有 大小写字母数字组成 可以有“@&quot;或 ”.“

js  正则  以字母开头必须有 大小写字母数字组成 可以有“@"或 ”.“ var reg = /^[a-zA-Z]{1}(?=.*[a-z])(?=.*[A-Z])[a-zA-Z\[email protected]\.]{6,16}$/; var v = reg.test(str);     alert(v); //校验是否全由数字组成 function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return fa

浅谈 js 正则之 test 方法

原文:浅谈 js 正则之 test 方法 其实我很少用这个,所以之前一直没注意这个问题,自从落叶那厮写了个变态的测试我才去看了下这东西.先来看个东西吧. ? 1 2 3 4 5 var re = /\d/; console.log( re.test("1") ); console.log( re.test("1") ); console.log( re.test("1") ); console.log( re.test("1"

删除JS前台校验,后台批量删除

1.功能需求 在一个数据表格中,选中欲删除的记录,点击删除按钮,先触发前台验证,然后调用后台处理逻辑 2.代码实现 HTML代码: <asp:Repeater ID="repInputList" runat="server" DataSourceID="InputsDataSource" EnableViewState="true" > <HeaderTemplate> <table cellpa

js 正则练习之语法高亮

原文:js 正则练习之语法高亮 学了几天正则,差不多该总结整理写成果了,之前就想写语法高亮匹配来着,不过水平不够,看着例子都不理解.今天就分析下 次碳酸钴 和 Barret Lee 语法高亮实现. 先说 Barret Lee 的这篇 <玩转正则之highlight高亮>之前看的时候只觉的神奇,特别是下面那个一步一步分开匹配的例子,更是霸气测漏,不过作者也说了,分开只是为了演示方便,可以很直观的看到这一步匹配了什么,不然一步到位匹配完成,你都不知道发生了什么就处理完毕了.来看下他的正则 (/^\

python第九十五天--js正则

定义正则表达式 /.../ 用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m 表示多行匹配 JS正则匹配时本身就是支持多行,此处多行匹配只是影响正则表达式^和$,m模式也会使用^$来匹配换行的内容) var pattern = /^Java\w*/gm; var text = "JavaScript is more fun than \nJavaEE or JavaBeans!"; result = pattern.exec(text) re