撰写时间:2019年07月16日
正则表达式菜鸟教程:
https://www.runoob.com/regexp/regexp-syntax.html
表达式全集:
http://tool.oschina.net/uploads/apidocs/jquery/regexp.html
常用到的事件:
- onblur:失去焦点触发、
- onclick :单击时、
- onkeyup :键抬起时 、
- onkeydown: 键按下时
常用的匹配符:
- /i (忽略大小写)、
- /g (全文查找出现的所有匹配字符)、
- /m (多行查找)
- /gi(全文查找、忽略大小写)、
- /ig(全文查找、忽略大小写)、
- ^匹配输入的开始
- &匹配输入的结束、
- [^]放入中括号就是非或者排除的意思
/ig :
JS中的正则表达式//表示之间的就是正则表达式就像VB里的""一样,只是告诉电脑//之间的是正则表达式后面的ig,i是表示区分大小写,g是全局模式如果不区分东西写,不开启全局,就不用写ig了/[^0-9*#-]/ig 区分大小写,全局模式/[^0-9*#-]/i 区分大小写,非全局模式/[^0-9*#-]/g 不区分大小写,全局模式/[^0-9*#-]/ 不区分大小写,非全局模式
正则表达式搭配使用:
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
http://www.w3school.com.cn/jsref/jsref_replace.asp
不能为空
<input onblur="if(this.value.replace(/^ +| +$/g,'')=='')alert('不能为空!')">
直接在输入框验证提示 提示可以使用插件的提示
<input onblur="if(this.value.replace(/^ +| +$/g,'')=='')layer.msg('不能为空!', { icon: 5, skin: 'layui-layer-molv'})">
只能输入英文和数字
提示的:<input onblur="if(/[^0-9a-zA-Z]/g.test(value))alert('只能输入英文数字')">
不能输入的:<input onkeyup="value=value.replace(/[^0-9a-zA-Z]/g,'')"/>
<input onkeyup="value=value.replace(/[^\da-zA-Z]/g,'')"/>
<input type="text" onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9]/g,'')">
判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母
/^([a-zA-z_]{1})([\w]*)$/g.test(str)
只能输入数字
<input name="text" type="text" id="NewPage" onKeyUp="value=value.replace(/\D/g,'')"
onafterpaste="value=value.replace(/\D/g,'')" >
onkeyup="value=value.replace(/[^0-9]/g,'')"
onkeyup="value=value.replace(/\D/g,'')"
只能输入中文
<input type="text" onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')">
不能输入中文
<input type="text" onkeyup="value=value.replace(/[\u4E00-\u9FA5]/g,'')">
只能输入英文
<input type="text" onkeyup="value=value.replace(/[^\a-\z\A-\Z]/g,'')">
<input type="text" onkeyup="value=value.replace(/[^a-zA-Z]/g,'')">
只能输入中文、英文、数字、@符号和.符号
<input type="text" onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\@\.]/g,'')">
只允许输入英文,且不能粘贴也无法弹出粘贴菜单
<input type="text" onkeyup="value=value.replace(/[^\a-\z\A-\Z]/g,'')" onkeydown="fncKeyStop(event)" onpaste="return false" oncontextmenu = "return false"/>
只能输入数字和点号(注意:在[^\d.]里的d不能写成大写D,否则就变成除了数字以外的所有字符)
<input name="price" type="text" size="8" maxlength="8" onkeyup="value=value.replace(/[^\d\.]/g,'')" >
在<input>
里输入onkeyup="value=value.replace(/[^\X]/g,'')"
然后在(/[\X]/g,'')
里的X换成你想验证的正则表达式
中文:u4E00-u9FA5
数字:d、0-9
英文:a-z、A-Z
其它符号@,点或其它符号.也可以多个,用\隔开就行了.
例如:
中、英文和数字加@符号加点符号:\a-\z\A-\Z0-9\u4E00-\u9FA5\@\.
若想在文本框里不能右键弹出菜单和不能粘贴进复制的信息的话就要在里输入
onKeyDown="fncKeyStop(event)" onpaste="return false" oncontextmenu="return false;
验证输入的电话号码,只能输入纯数字,或 “-” 或 “、” 或者空格
onkeyup="this.value=this.value.replace(/[^-\d、/\s]/g, '')"
验证输入的电话号码格式xxx xxxx xxxx 或xxx-xxxx-xxxx
空格类型:/^(13[0-9]|14[56789]|15[0-3,5-9]|166|17[0135678]|18[0-9]|19[89])( +| +)\d{4}( +| +)\d{4}$/
“-”符号类型:/^(13[0-9]|14[56789]|15[0-3,5-9]|166|17[0135678]|18[0-9]|19[89])\-\d{4}\-\d{4}$/
验证只能输入数字跟空格 或数字跟“-”
空格:/[^0-9\s]/g 或 /[^\d\s]/g
-:/[^0-9\-]/g 或 /[^\d\-]/g