转义字符
用反斜杠"\"表示转义。
var str = "abc";
var reg = /a.c/;
var reg2 = /a\.c/;
console.log(reg.test(str)); //true(.表示任何字符)
console.log(reg2.test(str)); //false(.经过转义变成了普通的点)
\s:匹配空格
\S:匹配非空格
\d:匹配数字
\D:匹配非数字
\w:匹配字母、数字、下划线
\W:匹配非字母、数字、下划线
\1、\2:\1表示重复第一个子项,\2表示重复第二个子项……
var str = "ab";
var reg = /(\w)(\w)/;
var reg2 = /(\w)\1/;
console.log(reg.test(str)); //true
console.log(reg2.test(str)); //false
\b:表示单词边界,匹配一个位置,这个位置需要满足以下两个条件
1 一边是字母、数字或下划线
2 另一边是开始位置、结束位置或非字母、数字、下划线
var str = "hello";
var reg = /\bhe/;
var reg2 = /he\b/;
console.log(reg.test(str)); //true
console.log(reg2.test(str)); //false
\B与之相反
量词
"+"表示出现一次或多次(>=1),也可表示为{1,}。
"?"表示出现0次或者1次,也可表示为{0}{1}。
"*"表示出现0次或多次,也可表示为{0,}。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>QQ号码验证</title>
</head>
<body>
<input type="text" id="ipt" placeholder="请输入您的QQ号码">
<script>
/*
* QQ号码验证
* 规则:大于等于5位,都是数字
* */
var oIpt = document.getElementById("ipt");
//onblur失去焦点时间
oIpt.onblur = function () {
//拿到input中的字符串
var valueStr = oIpt.value;
// ^在[]外面表示以…开头,在[]里面表示非
// $表示以…结尾
var reg = /^[1-9]\d{4,}$/;
if (reg.test(valueStr)) {
alert("验证成功,可以登陆!")
}else {
alert("你输入的QQ号码不合法!");
}
}
</script>
</body>
</html>
正则中的默认规则
1 区分大小写,若要不区分大小写,在正则最后加上i。
2 匹配成功就结束,不再继续匹配,若要全局匹配,在最后加上g。