【总结】js正则表达式及验证函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【总结】js正则表达式及验证函数相关的知识,希望对你有一定的参考价值。

参考技术A 用户名或昵称 : ^[\u4e00-\u9fa5A-Za-z0-9-_]*$——只能中英文,数字,下划线,减号

用户密码: ^[a-zA-Z]\w5,17$ 正确格式为——以字母开头,长度在6-18之间,只能包含字符、数字和下划线。

汉字 :^[\u4e00-\u9fa5],0,$

Email地址 :^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

                     ^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$

IP地址 :^(\d1,2|1\d\d|2[0-4]\d|25[0-5])(\.(\d1,2|1\d\d|2[0-4]\d|25[0-5]))3$

日期 格式是否为YYYY-MM-DD:^\d4-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2]\d|3[0-1])$/;

时间 格式是否为hh:mm:ss:^([0-1]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$

InternetURL :^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$

                            ^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$

电话号码 :^(\(\d3,4\)|\d3,4-)?\d7,8$——正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。

                        ^((\(\d2,3\))|(\d3\-))?(\(0\d2,3\)|0\d2,3-)?[1-9]\d6,7(\-\d1,4)?$

手机号码 :^0?(13[0-9]|15[012356789]|18[0236789]|14[57])[0-9]8$:打长途时一般要在手机号码前加0。

身份证号 (15位或18位数字):^\d15(\d2[A-Za-z0-9])?$

QQ号码 : /^[1-9]\d4,8$/

验证是否含有 ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+

验证一年的12个月:^(0?[1-9]|1[0-2])$ 正确格式为:“01”-“09”和“1”“12”

验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$ 正确格式为:01、09和1、31。

验证数字:^[0-9]*$

验证n位的数字:^\dn$  

验证至少n位数字:^\dn,$ 

验证m-n位的数字:^\dm,n$

验证零和非零开头的数字:^(0|[1-9][0-9]*)$

验证有两位小数的正实数:^[0-9]+(.[0-9]2)?$

验证有1-3位小数的正实数:^[0-9]+(.[0-9]1,3)?$

验证非零的正整数:^\+?[1-9][0-9]*$

验证非零的负整数:^\-[1-9][0-9]*$

验证非负整数(正整数 + 0) ^\d+$

验证非正整数(负整数 + 0) ^((-\d+)|(0+))$

验证长度为3的字符:^.3$

验证由26个英文字母组成的字符串:^[A-Za-z]+$

验证由26个大写英文字母组成的字符串:^[A-Z]+$

验证由26个小写英文字母组成的字符串:^[a-z]+$

验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$

验证由数字、26个英文字母或者下划线组成的字符串:^\w+$

整数:^-?\d+$

非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$

正浮点数: ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$

非正浮点数(负浮点数 + 0):^((-\d+(\.\d+)?)|(0+(\.0+)?))$

负浮点数: ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$

浮点数 :^(-?\d+)(\.\d+)?$

双精度:^[-\+]?\d+(\.\d+)?$

//判断输入的字符是否为中文

function IsChinese()

    var str = document.getElementById('str').value.trim();

    if(str.length!=0)

        reg=/^[\u0391-\uFFE5]+$/;

        if(!reg.test(str))

            alert("对不起,您输入的字符串类型格式不正确!");

        

    



//判断输入的数字不大于某个特定的数字

function MaxValue()

    var val = document.getElementById('str').value.trim();

    if(str.length!=0)

        reg=/^[-+]?\d*$/;

        if(!reg.test(str))//判断是否为数字类型

            if(val>parseInt('123'))//“123”为自己设定的最大值

                alert('对不起,您输入的数字超出范围');

           

        

    



//为上面提供各个JS验证方法提供.trim()属性

String.prototype.trim=function()

    return this.replace(/(^\s*)|(\s*$)/g, "");



var patterms = newObject();

//验证IP

patterms.ip = /^(\d1,2|1\d\d|2[0-4]\d|25[0-5])(\.(\d1,2|1\d\d|2[0-4]\d|25[0-5]))3$/;

//验证EMAIL

patterms.email = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;

//验证函数

functionverify(str,pat)

    var thePat = patterms[pat];

    if(thePat.test(str))

        return true;

    else

        return false;

    



//测试alert(verify("asidycom@163.com","email")+","+verify("192.168.1.1","ip")+","+verify("192.168","ip"));

本文摘自: js正则表达式验证大全

jquery.validation自定义正则表达式验证

参考技术A 做项目时前台表单验证用了jquery.validation插件。

发现在做正则表达式验证时没有参数设置可以使用,需要一个个添加方法,比较麻烦。

就做了一个简单的分装,也总结了一些正则表达式。

/**

* @anthor ycf

* @date 1017/11/3

*

* 本js是对jquery.validator的自定义方法的封装

* 只能用于正则表达验证

* 页面必须调用jquery.validator.js

* 共两个方法

* regular 只添加一个正则自定义函数

* regulararr 批量导入,传入对象即可。

* 具体信息请看页面展示及函数参数说明

* 以下是一些常用的正则表达式。

*/

//用户名验证

var usernameExp = /^[a-zA-Z0-9_-]4,16$/;

//姓名验证

var nameExp = /^[\u4E00-\u9FA5A-Za-z]+$/;

//密码验证

var pwdExp = /^[0-9a-zA-Z_#!@$%^&*]6,16$/;

//年龄验证

var ageExp = /^(?:0|[1-9][0-9]?|120)$/;

//邮箱验证

var emailExp = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;

//固定电话验证

var telExp = /^0\d2,3-\d7,8(-\d1,6)?$/;

//手机号码验证

var phoneExp = /^0?(13[0-9]|15[012356789]|17[013678]|18[0-9]|14[57])[0-9]8$/;

//英文名验证

var enameExp = /^[a-zA-Z]+$/;

//邮政编码验证

var postalcodeExp = /^[0-9][0-9]5$/;

//QQ验证

var qqExp = /^\d5,10$/;

//非法字符验证

var ffzfExp = /[@#\$%\^&\*]+/g;

//IP验证

var ipExp = /((25[0-5]|2[0-4]\d|((1\d2)|([1-9]?\d)))\.)3(25[0-5]|2[0-4]\d|((1\d2)|([1-9]?\d)))/;

//非负整数验证

var ffzsExp = /^(0|[1-9]\d*)$/;

//正负小数验证

var zfxsExp = /^[+-]?\d*\.\d1,3$/;

//正负整数和小数验证

var zfzshxsExp = /^(-)?\d+(\.\d+)?$/;

//身份证号验证

var idcardExp = /^[1-9][0-9]5(19[0-9]2|200[0-9]|201[0-9]|202[0-9]|203[0-9])(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])[0-9]3[0-9xX]$/i;

//限制输入

var limitExp = /^((?!test).)*$/; //不能输入包含test的字符串

/**

* 自定义正则匹配方法

* @param funName 自定义方法名

* @param Exp 正则表达式

* @anthor ycf

*/

function regular(funName,Exp)

jQuery.validator.addMethod(funName, function(value, element)

return this.optional(element) || Exp.test(value);

, "不通过");



/**

* 批量添加自定义正则匹配方法

* @param objExp 对象

* 例如 "postalcodeCheck":postalcodeExp

*

* @anthor ycf

*/

function regularArr(objExp)

$.each(objExp, function(i)

jQuery.validator.addMethod(i, function(value, element)

return this.optional(element) || objExp[i].test(value);

, "不通过");

);



这样在前台js里只需要申明一个对象,并引入这个js文件就行了。希望能帮到大家。

以上是关于【总结】js正则表达式及验证函数的主要内容,如果未能解决你的问题,请参考以下文章

mvc Model验证总结及常用正则表达式

js 正则验证正整数

JS正则表达式总结

jquery.validation自定义正则表达式验证

js正则表达式总结

js常见正则表达式验证及说明