【总结】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正则表达式及验证函数的主要内容,如果未能解决你的问题,请参考以下文章