1.正则
正则表达式: 字符串的校验(验证)------ 字符串
创建 :
字面量创建 /匹配的字符串/
实例化对象 new RegExp('匹配的字符串')
// 双斜杠 -----判断字符串中是否有字符能匹配 boy
const reg1 = /boy/ ;
// regular expression 简写
// 实例化对象
const reg2 = new RegExp('good') ;
console.log(reg1 , reg2);
2.正则的修饰符
正则的修饰符
i ignore 忽略大小写
g global 全局匹配
<script>
const reg1 = /md/i ;
const reg2 = /md/g ;
//构造函数的第一个参数表示匹配的字符,第二个参数表示修饰符
const reg3 = new RegExp('md' , 'ig') ;
const str = 'world md he Md mmd' ;
//replace 默认只会替换第一个
console.log(str.replace('md' , '**')) ;
console.log(str.replace(/md/ig , '**')) ;
console.log(str.replace(reg3 , '**')) ;
</script>
3.正则的方法
正则的方法:
test() 返回布尔值
exec() 返回的是一个数组 ------ 总是匹配一个,如果匹配不到就返回null
const reg = /md/ig ;
const str = 'world tmd mmd tt MMd' ;
//test正则的方法 测试字符串中是否有匹配正则的内容 --- 布尔值 一般此正则不需要全局匹配
console.log(reg.test(str));
// exec() 返回的是一个数组 --- 总是匹配一个,如果匹配不到就返回null
console.log(reg.exec(str));
//null false
//[] true .........
console.log(Boolean([]));
const arr = [1,2,3] ;
const arr2 = arr.filter(function (v) {
return v > 3
})
console.log(arr2);
4.正则的内容
正则的语法
| 或者
[] 或者(区间) [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次
^ 以...开头
$ 以...结尾
^ $ 同时使用可以把正则规定死
. 匹配任意字符
const reg = /[0-9]/ ;
const reg2 = /0|1|2|3|4|5|6|7|8|9/ ;
const reg3 = /[0-9,; ]/
console.log(reg3.test('你, 好啊'));
const reg4 = /da*y/ ; // /d要么有a,要么没有a,不能有其他的字符y/
const str4 = 'dbaaaaaaaaaaaay dby up' ;
console.log(reg4.test(str4));
const reg5 = /da+y/ ; // day daay daa...y
console.log(reg5.test('dy'));
const reg6 = /da?y/ ; //dy day
console.log(reg6.test('day'));
const reg7 = /da{2,5}y/ ;