#2、正则表达式 ##2.1正则表达式的创建 ###2.1.1字面量表达式 `let reg = /a/b;` ###2.1.2函数表达式 `let reg2 = new RegExp(a,b);` - a:表示正则要验证的规则 - b:表示修饰符,是否全局变量g,是否区分大小写i,是否多行查找m 可以不写 ##2.2正则表达式的方法 ###2.2.1 `test()` 示例: ```js let reg = /a/; let str = "abc"; console.log(reg.test(str)); //true ``` ###2.2.2 `exec()` 示例: ```js let reg = /a/; let str = "abc"; console.log(reg.exec(str)); //["a", idnex: 0, input:"abc"] ``` ##2.3、正则常用命令 ###2.3.1字符组【】 示例: ```js let reg = /[abc]/;; let str = "aasdfbasc"; console.log(reg.test(str)); //返回false ``` - 匹配中括号中的任一个字符 - 如果是全部字符,那么必须和中括号中的格式保持一致 - 表示26个英文字母[a-z]或者[A-Za-z] - ^表示非(匹配不在中括号中的任意字符) 示例: ```js let reg = /[^abc]/; let str = "a1"; console.log(reg.test(str)); //返回true,因为在字符串中能够找到一个不是abc的字符 ``` ##2.4简写形式 - `d表示:数字[0-9]` - `D表示:非数字[0-9]` - `w匹配:[0-9a-zA-Z_)]数字字母下划线` - `W匹配:[^0-9a-zA-Z]除了数字字母下划线以外的任意字符` - `s匹配:空白字符` - `S匹配:非空白字符` - `·匹配:除了回车 换行 以外的所任意字符` ##2.5量词 - `n{x}匹配x个n` - `n{x,y}匹配x到y个n` - `n{x,}匹配至少x个n` - `n?匹配0-1个n` - `n*匹配0或多个n` - `n+匹配至少1个n` ##2.6特殊字符 - `|表示或` - `表示转义符:将有特殊含义的字符转化为普通字符` - `()对规则进行分组` - `^n匹配以n开头的字符` - `n$匹配以n结尾的字符` ##2.7修饰符 - `g表示全局查找` - `i表示不区分大小写` - `m表示多行查找` ##2.8字符串配合正则使用的方法 - `search()`找到第一个满足条件的下标 示例: ```js let str = "Mr Blue has a blue car and blue house"; let reg = /blue/g; console.log(str.search(reg)); //14,第一个blue下标为14 ``` - `match()`找到全部满足条件的字符串 非全局不区分大小写,并且满足条件的的字符串只有一个的时候,会显示["字符","下标","以及input"] 示例: ```js let str = "Mr Blue has a blue car and blue house"; let reg = /blue/gi; console.log(str.match(reg)); //["Blue", "blue", "blue"] - `replace()`替换 示例: ```js let str = "Mr Blue has a blue car and blue house"; let reg = /blue/gi; console.log(str.replace(reg, "red")); //Mr red has a red car and red house