在一个验证form的实例中扩展jQuery.validate
2024-08-31 12:50:36
需求很简单,直接上图:
要验证表单上的3个input输入框的格式,要求如下:
主关键词情形1: 浙江 杭州 温州
主关键词情形2: 浙江|江苏|上海,但是不能用 空格和 | 混合用,也就是情形1和2不能混合
“或”关键词: 教育|中学|小学
“非”关键词: 校长-教授-大学
另外,主关键词+或关键词的个数不能大于10个
非关键词个数不限制
原创文章,转载请注明:http://www.cnblogs.com/phpgcs/
这里用了 jQuery.validate.js
2 //main keyword validate
1 //user can input words with backspace or | splited
0 $.validator.addMethod("kw_main_validate", function(value, element){
1 var kwmain = /^([\u4e00-\u9fa5a-zA-Z0-9]{1,10}\s?){1,10}$|^([\u4e00-\u9fa5a-zA-Z0-9]{1,10}\|?){1,10}$/;
2 //full match ,use ^ and $
3 return kwmain.test(value);
4 })
5 //or keyword validate
6 //user can input words with | splited
7 $.validator.addMethod("kw_or_validate", function(value, element){
8 var kwmain = /^([\u4e00-\u9fa5a-zA-Z0-9]{1,10}\|?){1,10}$/;
9 return kwmain.test(value);
10 })
11 //not keyword validate
12 //user can input words with - splited
13 $.validator.addMethod("kw_not_validate", function(value, element){
14 var kwmain = /^([\u4e00-\u9fa5a-zA-Z0-9]{1,10}\-?){1,10}$/;
15 return kwmain.test(value);
16 })
17 //main kw + or kw <= 10
18 $.validator.addMethod("checkMax10", function(value, element){
19 var main_string = $('#keyword_main').val();
20 var or_string = $('#keyword_or').val();
21 var main_num = main_string.split(/[\s\|]/).length;
22 var or_num = or_string.split(/[\s\|]/).length;
23 return ((main_num+or_num-10)>0)?false:true;
24 }) 1 rules: {
5 keyword_main: {
6 required: true,
7 kw_main_validate: true,
8 checkMax10: true
9 },
13 keyword_or: {
14 kw_or_validate: true,
15 checkMax10: true
16 },
17 keyword_not: {
18 kw_not_validate: true
19 },
20 }, 21 messages: {
14 keyword_main: {
13 required: "请填写关键词",
12 kw_main_validate: "请检查输入的关键词用空格或者“|”隔开,不可混用",
11 checkMax10: "主关键词和或关键词总数不能超过10个"
10 },
9 keyword_or: {
8 kw_or_validate: "输入的关键词用“|”隔开",
7 checkMax10: "主关键词和或关键词总数不能超过10个"
6 },
5 keyword_not: {
4 kw_not_validate: "输入的关键词用“-”隔开"
3 },
2 },
字符串全匹配 string full match
^abc$
一个在线正则工具:http://tool.chinaz.com/regex,就是用的全匹配
参考文章:http://topmanopensource.iteye.com/blog/568593
update 2014 04 11
bug: 或 关键词和 非 关键词不是必填的项目,需要 if(value)... else return true;
5 //or keyword validate
6 //user can input words with | splited
7 $.validator.addMethod("kw_or_validate", function(value, element){
8 if(value){
9 var kwmain = /^([\u4e00-\u9fa5a-zA-Z0-9]{1,10}\|?){1,10}$/;
10 return kwmain.test(value);
11 }else{
12 return true;
13 }
14 })
15 //not keyword validate
16 //user can input words with - splited
17 $.validator.addMethod("kw_not_validate", function(value, element){
18 if(value){
19 var kwmain = /^([\u4e00-\u9fa5a-zA-Z0-9]{1,10}\-?){1,10}$/;
20 return kwmain.test(value);
21 }else{
22 return true;
23 }
24 })
最新文章
- Programming paradigms
- oracle一条sql语句统计充值表中今天,昨天,前天三天充值记录
- angular post表单
- 利用DropDownList实现下拉
- poj 3169 Layout 差分约束模板题
- 华为OJ平台——将真分数分解为埃及分数
- MySQL杂记
- 在C#中关于excel的导入和导出操作
- 网站开发常用jQuery插件总结(十)菜单插件superfish
- Json字符串与字典互转
- Js 日期处理
- 几个地图(高德、百度、Apple、Google)URL API
- 20160223.CCPP体系详解(0033天)
- iOS中Realm数据库的基本用法
- CSP应用开发-CryptAPI函数库介绍
- js和jQuery中的事件绑定与普通事件
- Xcode工程编译错误之iOS开发之Sending &#39;__strong typeof (xxx)&#39; (aka &#39;xxxx *__strong&#39;) to parameter of incompatible type &#39;id<;xxx>;&#39;
- java 利用Future做超时任务处理
- opencv学习之路(13)、图像阈值化threshold
- SLES 12 SP2 安装src.rpm软件包