正则表达式 ->规则表达式
强大的字符串匹配工具
RegExp对象
1.JS风格 ---- new RegExp('a','b');
2.perl风格 ----- /a/i
search(参数); 在字符串中查找指定的子串的第一次的位置 可以查找数字 或符合正则表达式的子串
参数:查找的子串 或 正则表达式
返回值:查找到返回子串的下标 找不到返回-1
返回出现的位置 忽略大小写 --- ignore
str.match(/n/g); 在字符串内检索指定的值,或找到一个或多个正则表达式的匹配
参数:子串 或 正则表达式 匹配多次 正则表达式 添加g
返回值:匹配成功得到匹配结果构成的数组 匹配失败返回null
match 获取匹配的字符返回一个数组
量词 + 量词变化:\d \d\d \d+
找到全部/全局匹配 g--- global
例子 :/\d+/g 找出所有数字
split(参数1,参数2); 以参数1分割参数2份(字符串转数组)
参数1:分割符 必须写
参数2:分割分数 省略:以参数1为分割点 分割出来几份就是几份
返回值:分割完后得到的一个数组
str.split(""); 会把字符串里的字符一个一个分割返回一个新的数组
replace(参数1, 参数2); 参数2 替换 参数1匹配到的子串
参数1:被替换的子串 /n/g 全局替换 不可省略
参数2: 用来替换的字符串
返回值:替换后的字符串
正则表达常用符号
1. i 忽略大小写 --- ignore
2.转义 \d 表示数字 ---- [0-9]
3. g 找到全部/全局匹配 --- global
4. + 量词:个数/任意个 --- 若干(多少都可以) ---{1,} 最少出现1次
5. . 点任意字符 尽量少用 [ \. 只代表代表一个点
6. 范围[a-z0-9A-Z] 写在方括号里
7. [^] 出现在方括号里代表排除 ps:[^a-z] 排除a-z
8. \w 英文、数字、下划线 ---- [a-zA-Z0-9_] 转义
9. \s 空白字符 转义
10. \D [^0-9] 除了0-9以外 转义
11. \W [^a-zA-Z0-9_] 除了英文、数字、下划线 转义
12. \S 非空白的字符 转义
13. {n} 正好出现n次
14. {n,m} 最少n次 最多m次
15. {n,} 最少n次 最多不限
16. * 任意次 {0,} 尽量不用
17. ^ 行首 $行尾 ----字符串的头和尾以什么开头 以什么结尾
18. ? 匹配 0 个或1个
19 | (a|b) a或b 任选一 写在小括号里|隔开
20.s dotAll 模式
正则表达式中 点 字符 默认匹配除 \n 之外的其他字符 添加 s 修饰符后,可以匹配 任意字符
21.m 多行匹配模式 添加m可以匹配到多行的由\n隔开的字符串 但只能返回一个
如果 正则使用了限定符 ^ 或者 $,
则 \n 会被默认认为一行的结尾 需要匹配多行、可以添加 m 修饰符
22.y 粘连模式
贪婪式表达式 尽可能多匹配 一般只要符合会全部匹配
1.X* 等价与 X{0,}
2.X+ 等价与 X{1, }
3.X? 等价与X{0,1}
非贪婪式表达式 满足表达式1个就可以
1.*? 等价与 X{0,}
2.X+? 等价与 X{1, }
3.X?? 等价与X{0,1}
非贪婪式表达式、优先匹配 表达式后面的正则匹配的内容,非贪婪式表达式 尽可能少的匹配元素