正则表达式
正则表达式简介
正则表达式的目的
- 给定的字符串是否符合正则表达式的过滤逻辑(匹配)
- 可以通过正则表达式,从字符串中获取我们想要的特定部分
正则表达式的特点
- 灵活性、逻辑性和功能性非常的强
- 可以迅速地用极简的方式达到字符串的复杂控制
JavaScript RegExp对象
RegExp对象用于规定在文本中检索的内容
当检索某个文件时,可以用RegExp这种模式来描述要检索的内容
复杂的模式可用于解析、格式检查、替换等等
JavaScript中正则表达式的声明方式
创建RegExp对象的语法
var reg = new RegExp(参数1,参数2)
- 参数1:正则公式(匹配原则)也可以是要匹配的字符串
- 参数2:修饰符,可以省略
- 常用修饰符:i:忽略大小写 g:全局匹配 m:执行多行匹配(结合^ $使用)
直接量语法
var reg3 = /参数1/修饰符;
- 参数不能写成字符串
- 参数1:匹配原则
- 参数2:可选,修饰符(i g m)
方括号
- [abc]:查找方括号之间的任何字符。
- [^abc]:查找任何不在方括号之间的字符。
- [0-9]:查找任何从 0 至 9 的数字。
- [a-z]:查找任何从小写 a 到小写 z 的字符。
- [A-Z]:查找任何从大写 A 到大写 Z 的字符。
- [A-z]:查找任何从大写 A 到小写 z 的字符。
- [adgk]: 查找给定集合内的任何字符。
- [^adgk]:查找给定集合外的任何字符。
- (red|blue|green):查找任何指定的选项。
元字符
元字符(Metacharacter)是拥有特殊含义的字符:
- .:查找单个字符,除了换行和行结束符。
- \w:查找单词字符。
- \W:查找非单词字符。
- \d:查找数字。
- \D:查找非数字字符。
- \s:查找空白字符。
- \S:查找非空白字符。
- \b:匹配单词边界。
- \B:匹配非单词边界。
- \0:查找 NUL 字符。
量词
- n+ 匹配任何包含至少一个 n 的字符串。
- n* 匹配任何包含零个或多个 n 的字符串。
- n? 匹配任何包含零个或一个 n 的字符串。
- n{X} 匹配包含 X 个 n 的序列的字符串。
- n{X,Y} 匹配包含 X 或 Y 个 n 的序列的字符串。
- n{X,} 匹配包含至少 X 个 n 的序列的字符串。
- n$ 匹配任何结尾为 n 的字符串。
- ^n 匹配任何开头为 n 的字符串。
- ?=n 匹配任何其后紧接指定字符串 n 的字符串。
- ?!n 匹配任何其后没有紧接指定字符串 n 的字符串。
RegExp对象的方法
regExp对象有3个方法:test()、exec()、compile()
test()方法检索字符串中的指定值。返回时true或false
exec()方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回null
compile()方法用于改变RegExp。既可以改变检索模式,也可以添加或删除第二个参数
支持正则表达式的 String 对象的方法
- search 检索与正则表达式相匹配的值。
- match 找到一个或多个正则表达式的匹配。
- replace 替换与正则表达式匹配的子串。
- split 把字符串分割为字符串数组。
