前端常用的正则 以及 input正则验证
2019-07-15 本文已影响52人
可怜的小黑兔
前端常用的正则
1.字母、数字、中文、小数
/^[A-Z]+$/ //大写字母
/^[a-z]+$/ //小写字母
/[^A-Za-z]/ //非字母
/^[0-9]{8}$/ //纯8位数字
/^[\u4E00-\u9FA5]/ //纯中文
/^\d+\.\d+$/ //是否小数
/^[A-Za-z0-9]+$/ //数字和字母
/^(([\u4E00-\u9FA5])|(\d))+$/ //中文和数字
2.日期
/^\d{4}(-)\d{1,2}\1\d{1,2}$/
3.手机号、座机
/^1((3[\d])|(4[5,6,9])|(5[0-3,5-9])|(6[5-7])|(7[0-8])|(8[1-3,5-8])|(9[1,8,9]))\d{8}$/ //手机号
/\d{3}-\d{8}|\d{4}-\d{7}/ //国内座机电话,如: 0341-86091234
/^((0\d{2,3}-\d{7,8})|(1[345789]\d{9}))$/ //电话格式(手机和座机)
4.qq、微信、email
/^[1-9]*[1-9][0-9]*$/ //qq号
/^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/ //微信号,6至20位,以字母开头,字母,数字,减号,下划线
/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/ //email地址
5.用户名、密码
/^[a-zA-Z0-9_-]{4,16}$/ //用户名,4到16位(字母,数字,下划线,减号)
/^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/ //密码强度,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符
6.身份证号(15位、18位数字),最后一位是校验位,可能为数字或字符X
/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
7.中国邮政编码
/^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}$/
8.其他
/<(.*)>.*<\/\1>|<(.*) \/>/ //是否html标签
/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/ //16进制颜色
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ //ipv4地址
input正则验证
1.输入数字
<input type="text" onkeyup="this.value=this.value.replace(/\D/g,'')">
2.输入英文
<input type="text" onkeyup="this.value=this.value.replace(/[^a-zA-Z]/g,'')">
3.输入中文
<input type="text" onkeyup="this.value=this.value.replace(/[^\u4e00-\u9fa5]/g,'')">
4.只输入数字和字母
<input type="text" onkeyup="value=value.replace(/[\W]/g,'')">
5.只能输入数字和英文
<input onkeyup="value=value.replace(/[^\d|chun]/g,'')">
6.只能输入英文字母和数字(不能输入中文)
<input onkeyup="value=value.replace(/[^\w\.\/]/ig,'')">
7.只能输入字母和汉字
<input onkeyup="value=value.replace(/[\d]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[\d]/g,''))" >
8.只能输入中文 、数字、英文
<input type="text" onkeyup="value=value.replace(/[^\w\u4E00-\u9FA5]/g, '')">
9.除了英文的标点符号以外,其他的都可以:中文,英文字母,数字,中文标点
<input type="text" onkeyup="this.value=this.value.replace(/^[^!@#$%^&*()-=+]/g,'')">
10.小数点后只能有最多两位(数字,中文都可输入),不能输入字母和运算符号:
<input onkeypress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 || /\.\d\d$/.test(value))event.returnValue=false">
11.小数点后只能有最多两位(数字,字母,中文都可输入),可以输入运算符号:
<input onkeyup="this.value=this.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')">
12.只能输入数字代码(小数点也不能输入)
<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">