### JS使用方法 创建 ``` var reg = new RegExp('abc', 'i'); var reg = /abc/i; ``` 使用方法 ``` 正则对象方法 test:返回true或false exec:返回一个数组,其中存放匹配的结果,如果未找到匹配,则返回值为null 字符串函数方法 search:返回字符串中第一个与正则相匹配的子串的起始位置,如果没有找到则返回-1 match:找到一个或多个正则表达式的匹配 replace:替换与正则表达式匹配的子串 split:把字符串分割为字符串数组 ``` --- ### 修饰符 i:表示忽略大小写。 g:表示全局匹配,查找所有匹配而非在找到第一个匹配后停止。 m:多行匹配。 --- ### 限定符 前面的子表达式的匹配次数, 以 'ac abc abbc abbbc abbbbc' 为例 *:零次或多次 ``` /ab*c/ig ==> ac abc abbc abbbc abbbbc ``` +:一次或多次 ``` /ab+c/ig ==> abc abbc abbbc abbbbc ``` ?:零次或一次 ``` /ab?c/ig ==> ac abc ``` {n}:匹配n次 ``` /ab{2}c/ig ==> abbc ``` {n,}:至少匹配n次 ``` /ab{2,}c/ig ==> abbc abbbc abbbbc ``` {n,m}:至少匹配n次且最多匹配m次 ``` /go{1,3}d/ig ==> abbc abbbc ``` --- ### 字符匹配符 以'aiod acd abd add aed afd ahd $%#@ 12345678 asdfghh'为例 [xyz]:字符集合。匹配所包含的任意一个字符 ``` /a[abc]d/ig ==> acd abd ``` [^xyz]:负值字符集合。匹配未包含的任意字符 ``` /a[^abc]d/ig ==> add aed afd ahd asd ``` [a-z]:字符范围。匹配指定范围内的任意字符 ``` /a[a-z]d/ig ==> acd abd add aed afd ahd asd ``` [^a-z]:负值字符范围。匹配任何不在指定范围内的任意字符 ``` /a[^a-f]d/ig ==> ahd ``` \d:匹配一个数字字符 ``` /\d+/ig ==> 12345678 ``` \D:匹配一个非数字字符 ``` /\D+/ig ==> aiod acd abd add aed afd ahd $%#@ asdfghh ``` \w:匹配包含下划线的任何单词字符。等价于[a-z0-9A-Z_] ``` /\w+/ig => "aiod", "acd", "abd", "add", "aed", "afd", "ahd", "12345678", "asdfghh" ``` \W:匹配任何非单词字符。等价于[^a-z0-9A-Z_] ``` /\W+/ig => " ", " ", " ", " ", " ", " ", " $%#@ ", " " ``` \s:匹配任何空白字符 ``` /\s+/ig ==> " ", " ", " ", " ", " ", " ", " ", " ", " " ``` \S:匹配任何非空白字符 ``` /\S+/ig ==> 全部 ``` ·:匹配除”\n”之外的任何单个字符 ``` 这个不举例 ``` --- ### 定位符 ^:匹配输入字符串的开始位置 ``` /^\d+/ig => 一个或者多个数字在开头处 ``` $:匹配输入字符串的结束位置 ``` /.+\d{3}$/ig => 最少3个数字在结尾处 ``` \b:匹配一个单词边界,也就是单词和空格间的位置 ``` /\bg\w+/g => 以g开头的包含下划线的任何单词 /\w+d\b/g => 以g结尾的包含下划线的任何单词 ``` \B:匹配非单词边界 ``` /\Bg\w+/g => 不以g开头的包含下划线的任何单词 /\w+d\B/g => 不以g结尾的包含下划线的任何单词 ``` --- ### 转义符(\) 以'++++++-*/%'为例 ``` /\++/g => 匹配一个或多个+符号 ``` --- ### 选择匹配符(|) ``` /a(xxx|bbb)c/g => 等同于或逻辑 ```

正则表达式规则的初学习

1532 100 应用技巧 2019-05-23