正则表达式:
字符串的校验(验证)
正则的创建:
字面量创建 /匹配的字符串/
实例化对象 new RegExp('匹配的字符串')
// 双斜杠 --- 判断字符串中是否有字符能匹配 good
const reg1 = /good/ ;
// regular expression 简写
// 实例化对象
const reg2 = new RegExp('good') ;
console.log(reg1 , reg2);
正则的修饰符
i (ignore 忽略大小写)
g (global 全局匹配)
// i ignore 忽略大小写
const reg1 = /tmd/i ;
// g global 全局匹配
const reg2 = /tmd/g ;
// 构造函数的第一个参数表示匹配的字符,第二个参数表示修饰符
const reg3 = new RegExp('tmd' , 'gi') ;
正则的方法
test() 返回布尔值
exec() 返回的是一个数组 --- 总是匹配一个 , 如果匹配不到就返回null
// test正则的方法 测试字符串中是否有匹配正则的内容 -- 布尔值 一般此正则不需要全局匹配
console.log(reg.test(str));
// 返回的是一个数组 --- 总是匹配一个 , 如果匹配不到就返回null
console.log(reg.exec(str));
// null false
// [] true !!!!!!!!
console.log(Boolean([]));
正则的语法
| 或者
[] 或者(区间) [0-9] [1-9] [a-z] [A-Z] [0-9a-zA-Z]
空格也会被匹配 --- 一般正则不写空格
正则的元字符
次数匹配:
* 0次或者多次 {0 , }
? 0次或者1次 {0 , 1}
+ 1次或者多次 {1 , }
{m , n} m次到n次
{m , } 至少m次
{m} m次
^ 以...开头
$ 以...结尾
^ $ 同时使用可以把正则规定死
. 匹配任意字符
中文匹配 [\u4e00-\u9fa5]
转义使用 \
// 匹配 \/
const reg = /\\\// ;
// 匹配 .
const reg2 = /\./ ;
// 匹配 [
const reg3 = /\[/ ;
console.log(reg2.test('hq'));
// + ? * {} 匹配的次数,需要前面有匹配的东西
const reg4 = /\+/ ;
console.log(reg4.test('1+1'));
\d 数字
\D 非数字
\w 数字,字母,下划线 [0-9a-zA-Z_]
\W 非数字,字母,下划线
\s 匹配空白字符
\S 匹配非空白字符
空白字符和空字符不一样
空字符 .{0}
能接受正则的方法
replace(要查找的,替换的) 默认只会替换一次,因此需要正则
search() 一般和indexOf是一样的,但是search还可以接受正则
match() 找到满足条件的字符,默认只会找到第一个,全局匹配才能找到所有的,如果找不到就返回null
split() 把字符串切割成数组,也可以接受正则的写法