//用户名正则,4到16位(字母,数字,下划线,减号)
var uPattern = /^[a-zA-Z0-9_-]{4,16}$/;
//输出 true
console.log(uPattern.test("caibaojian"));
//密码强度正则,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符
var pPattern = /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;
//输出 true
console.log("=="+pPattern.test("caibaojian#"));
//正整数正则
var posPattern = /^\d+$/;
//负整数正则
var negPattern = /^-\d+$/;
//整数正则
var intPattern = /^-?\d+$/;
//输出 true
console.log(posPattern.test("42"));
//输出 true
console.log(negPattern.test("-42"));
//输出 true
console.log(intPattern.test("-42"));
//可以是整数也可以是浮点数 正数正则
var posPattern = /^\d*\.?\d+$/;
//负数正则
var negPattern = /^-\d*\.?\d+$/;
//数字正则
var numPattern = /^-?\d*\.?\d+$/;
console.log(posPattern.test("42.2"));
console.log(negPattern.test("-42.2"));
console.log(numPattern.test("-42.2"));
//Email正则
var ePattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
//输出 true
console.log(ePattern.test(99154507@qq.com));
//手机号正则
var mPattern = /^1[34578]\d{9}$/; //http://caibaojian.com/regexp-example.html
//输出 true
console.log(mPattern.test("15507621888"));
//身份证号(18位)正则
var cP = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
//输出 true
console.log(cP.test("11010519880605371X"));
//URL正则
var urlP= /^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;
//输出 true
console.log(urlP.test(http://caibaojian.com));
//ipv4地址正则
var ipP = /^(?:(?: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]?)$/;
//输出 true
console.log(ipP.test("115.28.47.26"));
//RGB Hex颜色正则
var cPattern = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/;
//输出 true
console.log(cPattern.test("#b8b8b8"));
//日期正则,简单判定,未做月份及日期的判定
var dP1 = /^\d{4}(\-)\d{1,2}\1\d{1,2}$/;
//输出 true
console.log(dP1.test("2017-05-11"));
//输出 true
console.log(dP1.test("2017-15-11"));
//日期正则,复杂判定
var dP2 = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/;
//输出 true
console.log(dP2.test("2017-02-11"));
//输出 false
console.log(dP2.test("2017-15-11"));
//输出 false
console.log(dP2.test("2017-02-29"));
//QQ号正则,5至11位
var qqPattern = /^[1-9][0-9]{4,10}$/;
//输出 true
console.log(qqPattern.test("65974040"));
//微信号正则,6至20位,以字母开头,字母,数字,减号,下划线
var wxPattern = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/;
//输出 true
console.log(wxPattern.test("caibaojian_com"));
//车牌号正则
var cPattern = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/;
//输出 true
console.log(cPattern.test("粤B39006"));
//包含中文正则
var cnPattern = /[\u4E00-\u9FA5]/;
//输出 true
console.log(cnPattern.test("董董董"));
语法
var s=/a/ ; 是否有字母a
var s=/a|b/; 是否有字母a或者b
var s=/[ab]/;
var s=/[a-z]/; 是否是小写字母
var s=/[A-Z]/; 是否是大写字母
var s=/[a-zA-Z]/; 是否是字母
var s=/[a-z]/i; i是不区分大小写
var s=/[0-9]/; 是否是数字
var s=/\d/;
var s=/[a-z\d]/i; 字母或者数字
var s=/[a-z0-9]/i;
var s=/\w/;
var s=/\$/; 验证 $或者*&符号等 必须加 \
^是表示开始 以什么开头
$是表示结束 以什么结尾
修饰符
i 是正则表达式的修饰符
g 表示全局修饰符
正则数量词
{m} {6} 只有6个
{m,n} {6,10} 6-10个
{m,} {6,} 至少是6个
+
*
?
验证方法
s.test(要验证的字符)
替换字符
string.replace(正则表达式,替换的字符);
匹配
string.match(正则表达式)
//是不是的数字 [0-9] |
|
| //var a=9; //true |
| //var a="*"; //false |
| //var a="5"; //true |
| //var reg=/^[0-9]$/; //是不是一个数字 |
| //var a=12345; //false |
| //var a=123456; //true |
| //var reg=/^[0-9]{6}$/; //是不是6位的数字 |
| //console.log(reg.test(a)); |
|
|
| //要求:至少是6位的数字或者字母的组合 |
| //var str="hello"; |
| //var reg=/^[a-z0-9]{6,}$/; |
| //console.log(reg.test(str)); |
|
|
| //数字:\d |
| //var reg=/^\d{6}$/; //6位的数字 |
|
|
| //非数字:\D 除了数字 |
| //var str="a"; |
| //var reg=/^\D$/; |
| //console.log(reg.test(str)); |
|
|
| //单词字符:\w 不包含 &*%这些符号 |
| //var str="hello&"; |
| //var reg=/^\w{6}$/; //6位字母或者数字组合 |
| //console.log(reg.test(str)); |
|
|
| //非单词字符 : \W 不包含数字和字母 |
| //var str="#%%%&&"; |
| //var reg=/^\W{6}$/; |
| //console.log(reg.test(str)); |
|
|
| //var str="he llo wo rld"; |
| //var reg=/^hello$/; //false |
| //var reg=/\s/; //这个字符串中是否有空格 |
| //console.log(reg.test(str)); |
|
|
| // . 查找单词 包含字母数字特殊符号(&*%.) |
| var str="he.llo"; |
| var reg=/./; |
| console.log(str.match(reg)); |
.只允许输入数字
<input name="username" type="text"
οnkeyup="value=this.value.replace(/\D+/g,'')">
只允许输入输入大小写英文字母,数字和下划线
方法一:
<input name="username" type="text"
οnkeyup="value=value.replace(/[^\w\.\/]/ig,'')">
方法二:
<input name = "username" type = "text" οnkeyup="this.value=this.value.replace(/[^a-zA-Z0-9_]/g,'');">
3.只允许输入汉字
<input name = "name" type = "text" οnkeyup="value=value.replace(/[^\u4E00-\u9FA5]+/g,'')">
4.只允许输入英文和数字
<input name = "username" type = "text" οnkeyup="this.value=this.value.replace(/[^\a-\z\A-\Z0-9]/g,'');">
5.只允许输入字母,数字和=&%
<input name = "username" type = "text" οnkeyup="this.value=this.value.replace(/[^a-zA-Z0-9=&%]/g,'');">
6.不能输入特殊字符
<input name = "name" type = "text" οnkeyup="value=value.replace(/[\W]/g,'')
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">
7.只能输入数字和小数点
<input name = "username" type = "text" οnkeyup="this.value=this.value.replace(/[^\0-9\.]/g,'');">
8.只允许输入英文
<input name = "username" type = "text" οnkeyup="this.value=this.value.replace(/[^a-zA-Z]/g,'');">
9.只允许输入英文,数字,中文
<input name = "username" type = "text" οnkeyup="this.value=this.value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5]/g,'');">
10.只允许输入英文,数字,中文,小数点
<input name = "username" type = "text" οnkeyup="this.value=this.value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\.]/g,'');">
11.只允许输入英文,数字,中文,小数点,下划线
<input name = "username" type = "text" οnkeyup="this.value=this.value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\._]/g,'');">
12.只允许输入英文,数字,中文,小数点,下划线,空格
<input name = "username" type = "text" οnkeyup="this.value=this.value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\._ ]/g,'');">