正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串,
正则表达式通常被用来检索、替换那些符合某个模式的文本
声明方式
首先是正则表达式的创建,有2种办法:
使用RegExp的显式构造函数,语法为:
new RegExp("pattern"[,"flags"])
使用RegExp的隐式构造函数,采用纯文本格式:
/pattern/[flags]
pattern部分为要使用的正则表达式模式文本,是必须的。
在第一种方式中,pattern部分以JavaScript字符串的形式存在,需要使用双引号或单引号括起来;
在第二种方式中,pattern部分嵌套在两个“/”之间,不能使用引号。
flags部分设置正则表达式的标志信息,是可选项。
如果设置flags部分,在第一种方式中,以字符串的形式存在;
在第二种方式中,以文本的形式紧接在最后一个“/”字符之后。
flags可以是以下标志字符的组合。
g是全局标志。如果设置了这个标志,对某个文本执行搜索和替换操作时,将对文本中所有匹配的部分起作用。如果不设置这个标志,则仅搜索和替换最早匹配的内容。
i是忽略大小写标志。如果设置了这个标志,进行匹配比较时,将忽略大小写。
m是多行标志。如果不设置这个标志,那么元字符“ ^”只与整个被搜索字符串的开始位置相匹配,而元字符“$“只与被搜索字符串的结束位置相匹配。如果设置了这个标志,“ ^ ”还可以与被搜索字符串中的“\n”或“\r”之后的位置(即下一行的行首)相匹配,而“$”还可以与被搜索字符串中的“\n”或“\r”之后的位置(即下一行的行尾)相匹配。
普通字符
转义字符
\w \W \d \D \s \S
var reg = /\w/;//单个的字母数字下划线
var reg = /\W/;//单个的非字母数字下划线
var reg = /\d/;//单个数字字符
var reg = /\D/;//单个非数字字符
var reg = /\s/;//单个空白字符
var reg = /\S/;//单个的非空白字符
元字符
. * + ? {} [] () | ^ $
var reg = /./;//除了换行外的其它任意字符
var reg = /z*/;//匹配0次或多次
var reg = /z+/;//匹配至少1次或多次
var reg = /\w+?/;//禁止贪婪
var reg = /\w{5}/;//限制匹配的次数
var reg = /\w{5,12}/;//限制匹配5到12次
var reg = /[a-zA-Z0-9]+/;//字符范围
var reg = /\d+(\w+)\w+/;//子组
var reg = /abc|def|123/;//或
var reg = /^\$/;//限制开始
var reg = /a$/;//限制结尾
正则对象方法
- exec(string),对string进行正则处理,并返回匹配结果.该方法使用创建RegExp对象实例时所指定的表达式模式对一个字符串进行搜索,并返回一个包含搜索结果的数组。如果 exec 方法没有找到匹配,将返回 null。
- test(string),测试string是否含有匹配结果,如果存在就返回True,否则返回False。
String正则表达方法
- match(pattern) 根据pattern进行正则匹配,如果匹配到,返回匹配结果,如匹配不到返回null
- search(pattern) 根据pattern进行正则匹配,如果匹配到一个结果,则返回它的索引数;否则返回-1
- replace(pattern,replacement) 根据pattern进行正则匹配,把匹配结果替换为replacement,该方法并不改变调用它的字符串本身,而只是返回替换后的字符串。
- split(pattern) 根据pattern进行正则分割,返回一个分割的数组