前端开发补充之-正则和插件
1: JS正则表达式(常用于表单)
定义正则表达式
/.../ 用于定义正则表达式
/.../g 全局匹配
/.../i 不区分大小写
/.../m 多行匹配
多行匹配:
默认就是多行匹配
使用^$进行多行匹配时候使用m。
只具有2个方法
方法1:test - 判断字符串是否符合规定的正则
rep = /\d+/; 创建了正则表达式匹配数字
rep.test('asdfesf89sdf') #包含数字即返回true
输出:true
rep = /^\d+$/; 开头到结尾均为数字
以上实例输出返回:false
方法2:exec - 获取匹配的数据
实例1:
rep = /\d+/;
str = 'w_67_h_20'
rep.exec(str)
始终输出第一个数组:["67"]
实例2:
test = 'JavaScript is more fun than Java or JavaBeans!'
var pattern = /\bJava(\w*)\b/;#不用分组只输出头一个值,使用分组输出头一组数据。
pattern.exec(test)
分组的输出:['JavaScript','Script']
var pattern = /\bJava\w*\b/g #使用g是全局匹配,输出类似迭代器,匹配完成后输出null,如果继续将会再次重新匹配
未分组输出:第一个["JavaScript"],第二个['Java'],第三个['JavaBeans'] 第四个输出null
var pattern = /\bJava(\w*)\b/g #使用分组
分组的输出:第一个["JavaScript","Script"],第二个['Java',""],第三个['JavaBeans',"Beans"] 第四个输出null
默认事件先执行:checkbox # 当点击时候,先打对勾,然后才输出自定义的查看状态true或者false
自定义先执行
a #先执行自定义的函数,然后才进行URi的跳转
submit
表单验证:是为了减少数据库的请求,当然,如果游览器关闭的jsscript功能,最后还是的通过数据库进行验证。
举例:js表单验证写法有以下几种,如下:
1 flag = true; 2 $(form).find(':text,:password').each(function(){ 3 var name = $(this).attr('name') 4 var label = $(this).attr('label') 5 var val = $(this).val() 6 var $parent = $(this).parent() 7 var required = $(this).attr('require') 8 if(required){ # 如果为真,则必填 9 if(!val||val.trim() == ''){ 10 flag = false; 11 ErrorMessage($parent,label+'不能为空') 12 return false; 13 } 14 } 15 var number = $(this).attr('number') 16 if(number){ 17 if(!$.isNumeric(number)){ 18 flag = false; 19 ErrorMessage($parent,label+'必须为数字'); 20 return false; 21 } 22 } 23 var mobile = $(this).attr('mobile') 24 if(mobile){ 25 var reg = /^1[3|5|8]\d{9}$/; 26 if(!reg.test(val)){ 27 flag = false; 28 ErrorMessage($parent,label+'格式错误'); 29 return false; 30 } 31 } 32 })