正则表达式
正则表达式,是用来匹配一系列符合某个规则的字符串的表达式正则表达式独立于编程语言,几乎所有的编程语言甚至文字处理软件都支持正则表达式
一、Re基本规则
表达式 | 含义 |
---|---|
\w | 匹配任意字符,包括[0-9],[a-z],[A-Z]及下划线 |
\d | 匹配数字,包括[0-9] |
\s | 匹配空白,包括空格、制表符、换行符等 |
\W | 匹配非字符 |
\D | 匹配非数字 |
\S | 匹配非空白 |
[ ] | 匹配字符组 |
- | 匹配区间 |
\ | 转义字符 |
^ | 取反 |
\b | 单词边界 |
^,$ | 开始和结束 |
. | 任意字符 |
? | 可选字符 |
{N} | 代表某字符或某字符组出现N次 |
{M,N} | 代表某个字符或字符组出现M到N次 |
? | 非贪婪模式 |
{N,} | 开闭区间,代表某字符或字符组出现N到无限次 |
+ | 简写,代表{1,} 即1到无限次 |
* | 简写,代表{0,} 即0到无限次 |
二、Re表达式的使用
/正则表达式主体/修饰符(可选)
修饰符为可选,但一般使用g,代表全局匹配
可在参数中使用正则表达式的方法:
1、split()
切割字符串
var str = "abcd1efg2hijk3"
var arr = str.split(/\d/g) //[abcd,efg,hijk]
2、replace()
替换字符串
var a = '1231'
var b = a.replace(/1/g,0) //"0230"
3、search()
查找字符串
返回要查找的字符第一次出现的位置下标,若未找到返回-1
var a = '1231'
var b = a.search( /1/, g ) //0
4、match()
查找字符串
var a = '1231'
var b = a.match(/1/g ) //["1","1"]
三、正则对象
1.创建正则对象
var patt = new RegExp( '1', 'g ')
var patt = /1/g
1、compile()
用于改变 RegExp
2、exec()
检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回null
var str = '1231'
var patt = /1/g
console.log(patt.exec(str)) //[ "1", index: 0, input: "1231", groups : undefined]
3、test()
检索字符串中的指定值。返回值是true 或 false
var str = '1231'
var patt = /1/g
console.log(patt.test(str)) //true
*当使用了修饰符g时,test()和exec()会储存每一次运行的记录,下一次运行会从上一次储存的位置开始