js - 正则表达式
一、简介
1.1 概述
正则表达式
1、创建正则表达式
-语法1:var 变量 = new RegExp("正则表达式", "匹配模式")
-语法2:var 变量 = /正则表达式/匹配模式
-使用typeof检查正则对象,会返回object
2、正则表达式的方法
1)test()
-可以用来检查一个字符串是否符合正则表达式的规则,如果符合就返回true,不符合就返回false
-语法:正则表达式对象.test(字符串)
2)
3、匹配模式
1)i 忽略大小写
2)g 全局匹配模式
4、语法
1)| 表示或
2)[] 里面的内容也是或的关系
3)[a-z] 表示a-z之间的任意小写字母
4)[A-Z] 表示A-Z之间的任意大写字母
5)[A-z] 表示任意字母
6)[0-9] 表示0-9之间的任意数字
7)[^ ] 表示除了什么以外的
8). 表示任意字符
5、量词:设置内容出现的次数
1)? 出现0或1次
2)+ 至少出现1次
3)* 出现任意次(包括0次)
4){n} 出现n次
5){n, m} 出现n-m次
6){n, } 至少出现n次
6、开头结尾
1)^ 以什么开头
2)$ 以什么结尾
7、转义字符
1)\. .
2)\\ \
3)\? ?
4)\+ +
8、元字符
1)\w 任意字母,数字,下划线
2)\W 除了字母、数字、下划线
3)\d 任意的数字
4)\D 除了数字
5)\s 空格
6)\S 除了空格
7)\b 单词边界
8)\B 除了单词边界
1.2 实例
<script>
let reg1 = new RegExp("a");
console.log(reg1.test("anc"))
let reg2 = /[abc]/i;
console.log(reg2.test("anc"))
let reg3 = /a[bde]c/
let reg4 = /a{3}/
let reg5 = /(ab){3}/
let reg6 = /^a$/
console.log(reg6.test("aa"));
console.log(reg6.test("a"));
let reg7 = /^1[3-9][0-9]{9}$/
let str = " abc def ";
str = str.replace(/^\s* | \s*$/g, "")
console.log(str.length);
let reg8 = /^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/
</script>
二、字符串和正则
2.1 概述
1、split()
-可以将一个字符串拆分成一个数组
-可以传递一个正则表达式作为参数,这样将会根据正则表达式进行拆分字符串
-split默认进行全局匹配,即使没有说明是全局匹配模式
2、search()
-可以搜索字符串中是否含有指定内容
-如果搜索到指定内容,则返回第一次出现的索引,否则返回-1
-可以传递一个正则表达式作为参数,然后会根据正则表达式去检索字符串
-search只会查找第一个,不会进行全局查找,即使设置了全局匹配模式
3、match()
-可以根据正则表达式,从一个字符串中将符合条件的内容提取出来
-默认情况下,match只会找到第一个符合要求的内容,找到以后就会停止检索,我们可以设置正则表达式为全局匹配模式,这样就会匹配到所有的内容
-match会将匹配到的内容放入到数组中
4、replace()
-可以将字符串中指定的内容替换为新的内容
-第一个参数为被替换的内容(可以接受一个正则表达式作为参数);第二个参数为新的内容
-默认只会替换第一个
2.2 实例
<script>
let str1 = "1a2b3c4d5e6f7";
let arr1 = str1.split(/[A-z]/)
console.log(arr1);
let str2 = "helloabdaefadabc,dacaec";
let res2 = str2.search(/a[bde]c/);
console.log(res2);
let res3 = str1.match(/[A-z]/g);
console.log(res3);
let res4 = str1.replace(/[A-z]/g, '@_@');
console.log(res4);
</script>
|