什么是RegExp?
当你要检测某个文本时,可以使用一种模式来描述要检测的内容,RegExp就是这种模式,,简单的可以是一个单独的字符,更复杂的模式包括了更多的字符,并用于解析,格式检查,替换等等。
RegExp对象又被称为正则表达式,英文名为Regular Expression,在代码中常被称为regex,RE或RegExp.
正则表达式是对字符串执行模式匹配的强大工具,正则表达式用来定义一些字符串的规则,计算机可以根据正则表达式来检查一个字符串是否符合规则, 从而将字符串提取。
正则表达式也是一个对象,在用typeof来检测它时,返回的是一个对象或object.
语法一:由于正则表达式也是一个对象,我们可以使用new的方式来创建一个正则表示式
例:new Regexp(pattern, attributes)
语法二:我们可以直接声明一个变量然后规定RE的规则
例:var 变量=/pattern/attributes;
参数pattern是一个字符串,指定了正则表达式的模式或其他正则表达式
参数attributes 是一个可选的字符串,包含属性’g’,’i’,’m’,分别用于指定全局匹配,区分大小写和多行匹配。要注意的是ECMScript标准化之前。不支持m属性。如果pattern是正则表达式而不是字符串,则必须省略该参数
正则表达式中的修饰符,即正则的第二个可以设置的参数
i 忽略大小写,执行对大小写不敏感的匹配
g 执行全局匹配(查找所有符合条件的匹配而非只会查找第一个匹配后停止)
正则表达式中的特殊字符
‘^’在正则中表示以什么开头
‘$’在正则中表示以什么结尾
‘/’在正则中是一个转义字符
‘.’在正则中表示任意字符,当你想要使用一个普通的“.”号时,要使用“/”来转义
正则表达式的几种方法
test() 用来检测字符串的值,返回的是一个布尔类型的值,true 或false
例:
eaec() 方法检索字符中的指定值,返回值是被找到的值,如果没有发现匹配,则会返回一个null;
例:
compile() 这个方法用于改变RegExp,它既可以用来改变检索模式,也可以用来删除第二个元素;
例:
正则表达式的方括号
[abc] 查找方括号之间的任何字符。
[^abc] 查找任何不在方括号之间的字符。
[0-9] 查找任何从 0 至 9 的数字。
[a-z] 查找任何从小写 a 到小写 z 的字符。
[A-Z] 查找任何从大写 A 到大写 Z 的字符。
[A-z] 查找任何从大写 A 到小写 z 的字符。
[adgk] 查找给定集合内的任何字符。
[^adgk] 查找给定集合外的任何字符。
(red|blue|green) 查找任何指定的选项。
正则表达式的对象属性
global RegExp 对象是否具有标志 g。
global RegExp 对象是否具有标志 g。
ignoreCase RegExp 对象是否具有标志 i。
lastIndex 一个整数,标示开始下一次匹配的字符位置。
multiline RegExp 对象是否具有标志 m。
source 正则表达式的源文本。
支持正则表达式的几种String方法
search 检索与正则表达式相匹配的值。
match 找到一个或多个正则表达式的匹配。
replace 替换与正则表达式匹配的子串。
split 把字符串分割为字符串数组。
我们可以利用这些属性和方法来定义一些检索的规则,定义一些强大的功能,熟练利用正则表达式,因为它是对字符串执行模式匹配的强大工具。