

正则表达式是一个描述字符模式的对象,ECMAScript的RegExp类表示正则表达式。
1、两种创建方式(一种采用new运算符,另一个是采用字面量方式)
- var box=new RegExp(‘box’);第一个参数字符串
- var box=new RegExp(‘box’,’ig’);第二个参数可选模式修饰符
- var box=/box/; //直接用两个反斜杠
- var box=/box/ig; //在第二个反斜杠后面加上模式修饰符
2、元字符:在正则表达式中有特殊含义的字符
单个数字和字符的元字符
. 匹配单个任意字符
/g.ogle/.test('ggogle')//返回true,第二个字符可以是任意字符
[] 匹配单个范围内的字符
[0-9]:表示任意0-9
/g[0-9]ogle/.test('g2ogle')//true
\d :表示任意0-9
/g\dogle/.test('g2ogle')//true
\D :表示任意非0-9
/g\Dogle/.test('g2ogle')//false
[a-zA-Z0-9_]表示任意数字、字母、下划线
/g[a-zA-Z0-9_]ogle/.test('g2ogle')//true
/g[a-zA-Z0-9_]ogle/.test('gaogle')//true
/g[a-zA-Z0-9_]ogle/.test('g_ogle')//true
\w:表示任意数字、字母、下划线
/g\wogle/.test('g2ogle')//true
/g\wogle/.test('gaogle')//true
/g\wogle/.test('g_ogle')//true
\W:表示非数字、字母、下划线
/g\Wogle/.test('g2ogle')//false
/g\Wogle/.test('gaogle')//false
/g\Wogle/.test('g_ogle')//false
[^]:匹配任意一个除括号范围内的字符
[^0-9]:匹配任意一个非数字字符
/g[^0-9]ogle/.test('g2ogle')//false
重复字符 x(任意的单个字符)
x?:匹配0个或者一个x
/go?ogle/.test('google')//true
/go?ogle/.test('gogle')//true
x+:匹配至少1一个x
/g\d+oogle/.test('g1oogle')//true
/g\d+oogle/.test('g12345oogle')//true
x*:匹配任意个x
/g\d*oogle/.test('google')//true
/g\d*oogle/.test('g12345oogle')//true
x{m,n}:匹配至少m个,最多n个x字符,包括m,n
/g\d{2,5}oogle/.test('g2oogle')//false
/g\d{2,5}oogle/.test('g12345oogle')//true
x{n}:必须匹配n个x字符
/g\d{2}oogle/.test('g123oogle')//false
/g\d*{2}oogle/.test('g12oogle')//true
(xyz)+:小括号括起来的部分当作单个字符处理
/googabc+le/.test('googabccccle')//true
/goog(abc)+le/.test('googabcabcabcabcabcle')//true
空白字符
\s:匹配任意单个的空白字符
\S:匹配任意单个非空白字符
/goog\sle/.test('goog\nle')//true
/goog\sle/.test('goog le')//true
锚字符
^:行首匹配
/^google/.test('abc google abc')//false
/^google/.test('google sdsffs')//true
$:行尾匹配
/google$/.test('abc google abc')//false
/google$/.test('abc google')//true
替代字符 |
/google|baidu|bing/.test('google')//true
/google|baidu|bing/.test('baidu')//true
/google|baidu|bing/.test('bing')//true
修饰符
i:忽略大小写
g:全局匹配
m:换行匹配
/google|baidu|bing/.test(1、google|\n2、baidu\n3、bing)//true
3、正则表达式对象方法
test()
- 格式:正则.test(字符串)
- 功能:在字符串中匹配这个正则是否存在
- 返回值:匹配成功返回true,匹配失败返回false
exec()
- 格式:正则.exec(字符串)
- 功能:在字符串中匹配这个正则是否存在
- 返回值:返回匹配到的字符串,匹配成功返回一个装有字符串的数组,匹配失败返回null
4、字符串中使用正则的方法
match()
- 格式:字符串.match(正则)
- 功能:在字符串中匹配这个正则是否存在
- 返回值:返回匹配到的字符串,匹配成功返回一个装有字符串的数组,匹配失败返回null
replace()
- 格式:字符串.replace(oldStr/正则,newStr)
- 功能:用newStr替换oldStr
- 返回值:返回替换成功的字符串
split()
- 格式:字符串.split(分隔符/正则)
- 功能:用分隔符将愿字符串进行分割
- 返回值:分割剩下的子串组成的数组
search()
- 格式:字符串.search(字串/正则)
- 功能:找到符合条件的字串第一次出现的位置
- 返回值:如果找到,返回>=的下标,否则返回-1