-
正则是对象数据类型
-
创造正则的两种方式: 字面量, 构造函数
-
正则是专门用来处理字符串的一种技术(获取 匹配)
-
let reg = / were /
-
双斜杠里面的东西,我们称为元字符
-
常见正则运算符
- \d 表示一个数字字符
- \D 除了数字的所有字符
- \n 换行
- \r 回车
let str1 = 'qwertyuioasdfg hjkl'
let reg1 = /hello/; //test是正则类原型上的方法
console.dir(reg1.test(str1)); // 使用正则reg1去匹配 字符串str1,,若str1能满足正则的规则,则返回true
let reg2 = /\d/;
console.log(reg2.test(str1)); //false
let reg3 = /O/;
let obj = {
name:'qqq'
};
let t_str = JSON.stringify(obj);
console.log(reg1.test(t_str)); //false
let str4 = '123456'
console.log(/\D/.test(str4)); //取非
量词运算符
- *:出现
0-多次 - +:前面是q..q后面
一个到多个数字在后面必须根一个hello - ?:/q\d?hello/ // 前面是q..q后面
要么什么都没有,要不就是一个数字在后面必须根一个hello - /q\d{n}/:获取q后面n个数字
- /q\d{n+,}/:获取至少q后面n个字符
- /q\d{0,10}/: 获取n后面0~10个数字
- /^zhufeng/: 以z开头
- /zhufeng$/: 以g结尾
- \ 转义,把那些在正则当中有特殊含义的字符,转义成没有特殊含义的普通字符
- . 代表了处理换行以外的任意字符
.点本身用这个 - [^a-z] 小写字符以外的任意字符
//转义 \
let tt = "hello"zhufeng"";
console.log(tt); // "hello"zhufeng""
//或 |
let reg = /[xy]/ 等价于let reg = /x|y/ 输出x或y
let reg2 = /x|food/; //输出x或f,然后在输出ood
let str = 'zzzz'
let reg = /^zhufeng/ //以z开头,后面是hufeng
let reg = /^zhufeng$/ //以z开头,以g结尾
let reg1 = /hello/
let reg2 = /q\d?hello/ // 前面是q..q后面要么什么都没有,要不就是一个数字 在后面必须根一个hello
let reg3 = /q\d*hello/ //前面是q..q后面要么什么都没有,要不就是一个或多个数字 在后面必须根一个hello
let reg4 = /q\d+hello/ // 前面是q..q后面一个到多个数字 在后面必须根一个hello
let reg5 = /q\d{3}hello/ //前面是q..q后面3个数字 在后面必须根一个hello
let reg6 = /q\d{3+,}hello/ //前面是q..q后面至少3个数字 在后面必须根一个hello
let reg7 = /q\d{0,10}hello/ //前面是q..q后面0-10个数字 在后面必须根一个hello
量词运算符应用
-
获取电话号码
- 要求:首位数字是1,第二位是【35789】中任意一位
let arg = /^1[35789]\d{9}$/; //以1开头,第二位是35789中的一位,后面是9个数字结尾
let ss = '13578998156';
console.log(arg.test(ss));
2) 获取年龄
-
要求:
- 有效年龄在18-65之间
let str = '35';
/*
18 19
20 59
60 65
*/
let res = /(1[89])|([2-5]\d)|(6[0-5])/;
console.log(res.test(str));
3) 获取身份证的方式
- 要求:对最后一位进行判断,要求最后一位是数字或者
X
let id = '12345678912345678';
//方法一
let reg = '/^\d{17}[\dX]/';
//方法二
let reg2 = '/^\d{17}[0-9X]/'
//方法三
let reg3 = '/^\d{17}[\d|X]/'
console.log(reg.test('id'));
4)表单
<body>
<div class="box">
<input type="number" id="numPone" placeholder="手机号"><br>
<input type="text" id="id" placeholder="身份证"><br>
<input type="text" id="age" placeholder="年龄"><br>
<input type="text" id="number" placeholder="有效数字"><br>
<button>注册</button>
</div>
<script>
let numPone = document.getElementById("numPone"),
ids = document.getElementById("id"),
age = document.getElementById('age'),
btn = document.querySelector("button"),
num = document.getElementById('number')
let phoneReg = /^1[35789]\d{9}/,
idReg = /^\d{17}(\d|X)$/,
ageReg = /([1-9]\d)|[100]/,
numReg = /^[+/-]?(([1-9]\d+)|\d)(.\d+)?)$/
btn.onclick = function() {
let phone = numPone.value,
myId = ids.value,
myAge = age.value;
if(!phoneReg.test(phone)) {
alert('手机号不合法');
return
}
if(!idReg.test(myId)) {
alert('身份证不合法');
return
}
if(!ageReg.test(myAge)) {
alert(false);
return
}
alert('success')
}
</script>