jquery.validation自定义正则表达式验证
发布时间:2025-05-23 12:40:54 发布人:远客网络
一、jquery.validation自定义正则表达式验证
做项目时前台表单验证用了jquery.validation插件。
发现在做正则表达式验证时没有参数设置可以使用,需要一个个添加方法,比较麻烦。
就做了一个简单的分装,也总结了一些正则表达式。
*本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\d{2,3}-\d{7,8}(-\d{1,6})?$/;
var phoneExp=/^0?(13[0-9]|15[012356789]|17[013678]|18[0-9]|14[57])[0-9]{8}$/;
var postalcodeExp=/^[0-9][0-9]{5}$/;
var ffzfExp=/[@#\$%\^&\*]+/g;
var ipExp=/((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))/;
var ffzsExp=/^(0|[1-9]\d*)$/;
var zfxsExp=/^[+-]?\d*\.\d{1,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的字符串
function regular(funName,Exp){
jQuery.validator.addMethod(funName, function(value, element){
return this.optional(element)|| Exp.test(value);
*例如{"postalcodeCheck":postalcodeExp}
jQuery.validator.addMethod(i, function(value, element){
return this.optional(element)|| objExp[i].test(value);
这样在前台js里只需要申明一个对象,并引入这个js文件就行了。希望能帮到大家。
二、jQuery 手机号码验证
你的问题是这样的,当输入是空的时候,你注册了一个事件,在输入框后面显示 enter,然后这个事件就一直在;接下来,你输入手机号,比如 123,这时候会执行第二个 if里面的语句,
1、先把输入框后面的文字替换成“手机号码格式不正确!请重新输入!”
2、将焦点聚集在输入框上(注意这里,执行 focus()会触发之前定义的事件,导致文字又变回了“enter”)
这两步是一瞬间发生的,所以在你看来输入 123之后,鼠标失去焦点,文字是“enter”
if(!phone.val().match(/^[1][3][0-9]{9}$/)){
$("#mobile").html("<font color='red'>手机号码格式不正确!请重新输入</font>");
$("#shouji").unbind("focus");//添加这行,在focus()之前先把绑定的 focus处理事件去掉
三、怎样通过正则表达式删除内容里的空行
这次给大家带来怎样通过正则表达式删除内容里的空行,怎么怎样通过正则表达式删除内容里的空行?怎样通过正则表达式删除内容里的空行的注意事项有哪些,下面就是实战案例,一起来看一下。
这样,就可以匹配多个空行,同时用null来替代,就可以实现删除空行。此方案是基于对\r和\n的使用。
匹配之后,用null替代,也可以实现删除空行,
就完全实现了删除所有的空行,因为在每一个空行的开头和结尾都是
所以,删除了上一行之后,当前行还有一个\n\r,同样能够匹配上,所以,还要在做替代操作。这样,就可以删除所有的空行了。
这个就不是我们想要的结果.为什么呢?
C:\Program Files\Common Files\Relive.dll
C:\Program Files\Common Files\svchost.exe
C:\Program Files\Internet Explorer\msvcrt.bak
C:\Program Files\Internet Explorer\msvcrt.dll
C:\Program Files\Internet Explorer\msvcrt.ebk
C:\WINNT\system32\drivers\npf.sys
C:\WINNT\system32\WanPacket.dll
C:\Documents and Settings\User name\Local Settings\Temp\wmso.exe
C:\Documents and Settings\User name\Local Settings\Temp\BCG5.tmp
这个是原始文本,其实,在我们进行文本处理的时候,我们可以这样把空行,用
\r\n(回车换行,先回车,后换行)
C:\Program Files\Common Files\Relive.dll\r\n\r\nC:\Program Files\Common Files\svchost.exe\r\n\r\nC:\Program Files\Internet Explorer\msvcrt.bak\r\nC:\Program Files\Internet Explorer\msvcrt.dll\r\n\nC:\Program Files\Internet Explorer\msvcrt.ebk\r\n\r\n\r\n\r\nC:\WINNT\system32\drivers\npf.sys\r\nC:\WINNT\system32\wpcap.dll\r\nC:\WINNT\system32\Packet.dll\r\nC:\WINNT\system32\WanPacket.dll\r\n\r\nC:\Documents and Settings\User name\Local Settings\Temp\wmso.exe\r\nC:\Documents and Settings\User name\Local Settings\Temp\BCG5.tmp\r\n\r\n\r\n
这一段文本是一个整体,没有回车,没有空隙和间隔,这是我们正在处理的文本,只不过回车换行是不可见字符,所以就不能看到,但是还是存在的.
所以,在处理的时候才会出现我们上面的情况.
所有的\r\n都没有了,所以,文本,就成为了一个连接的纯字符文本了.
中间的所有的\n\r都替代掉了,\r(\n\r??\n\r)\n,中间的部分都替代掉了。所以就剩最后的一个\r\n.
相信看了这些案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!
mint-ui的search组件怎样可以在键盘显示搜索按钮
怎么实现springmvc接收jquery提交的数组后提取数据