正则表达式
正则表达式:是一种描述字符串结构的语法规则,是用于匹配字符串中字符组合的模式,同时正则表达式也是对象。
创建正则表达式:
var 变量名 = /表达式/
var 变量名 = new RegExp(/表达式/)
正则表达式的测试:
test( )
:检测字符串是否符合正则规则
模式修饰符
基本语法:
/表达式/[switch]
- switch :表示模式修饰符,是可选的
边界符
边界符:正则表达式中的边界符(位置符)用来提示字符所处的位置。
var reg = /^abc$/;
console.log(reg.test('abc’)); // 结果为:true
console.log(reg.test('abcd’)); // 结果为:false
console.log(reg.test('aabcd’)); // 结果为:false
console.log(reg.test('abcabc’)); // 结果为:false
预定义类
预定义符
字符 | 说明 |
---|---|
. | 匹配除“\n”外的任何单个字符 |
\d | 匹配所有0~9之间的任意一个数字,相当于[0-9] |
\D | 匹配所有0~9以外的字符,相当于[^0-9] |
\w | 匹配任意的字母、数字和下划线,相当于[a-zA-Z0-9] |
\W | 除所有字母、数字和下划线以外的字符,相当于[^a-zA-Z0-9] |
\s | 匹配空格(包括换行符、制表符、空格符等),相当于[\t\r\n\v\f] |
\S | 匹配非空格的字符,相当于[^\t\r\n\v\f] |
\f | 匹配一个换页符(form-feed) |
\b | 匹配单词分界符。如“\bg”可以匹配“best grade”,结果为“g” |
\B | 非单词分界符。如“\Bade”可以匹配“best grade”,结果为“ade” |
\t | 匹配一个水平制表符(tab) |
\n | 匹配一个换行符(linefeed) |
\xhh | 匹配ISO-8859-1值为hh(2个16进制数字)的字符,如“\x61”表示“a” |
\r | 匹配一个回车符(carriage return) |
\v | 匹配一个垂直制表符(vertical tab) |
\uhhhh | 匹配Unicode 值为 hhhh (4个16进制数字)的字符,如“\u597d”表示“好” |
转义特殊字符
转义特殊字符:"\"
通过’"\"
可以将正则表达式中的修饰符、边界符、预定义符等转换为普通字符
字符类
字符范围
pattern(模式) | 说明 |
---|---|
[cat] | 匹配字符集合中的任意一个字符c、a、t |
[^cat] | 匹配除c、a、t以外的字符 |
[A-Z] | 匹配字母A~Z范围内的字符 |
[^a-z] | 匹配字母a~z范围外的字符 |
[a-zA-Z0-9] | 匹配大小写字母和0~9范围内的字符 |
[\u4e00-\u9fa5] | 匹配任意一个中文字符 |
字符组合
允许用户输入英文字母(不区分大小写)、数字、短横线-、下划线的正则表达式为:
var reg = /^[a-zA-Z0-9_-]$/
取反符
当中括号“[]”与元字符“^”一起使用时,称为取反符。
量词符
用来设定某个模式出现的次数。
字符 | 说明 |
---|---|
? | 匹配?前面的字符0次或1次 |
+ | 匹配+前面的字符1次或多次 |
* | 匹配*前面的字符0次或多次 |
{n} | 匹配{ }前面的字符n次 |
{n,} | 匹配{ }前面的字符至少n次 |
{m,n} | 匹配{ }前面的字符m-n次 |
括号字符
分组:使用小括号可以进行分组,当小括号后面有量词符时,就表示对整个组进行操作。
/catch|er/——>可匹配结果:catch、er
/cat(ch|er)/——>可匹配结果:catch、cater
/abc{2}/——>可匹配结果:abcc
/a(bc){2}/——>可匹配结果:abcbc
正则表达式的优先级
正则表达式优先级:正则表达式各种符号的优先级,由高到低排列。
String类中的方法
match()方法
:根据正则匹配出所有符合要求的内容匹配成功后将其保存到数组中,匹配失败则返回false。
search()方法
:search()方法可以返回指定模式的子串在字符串首次出现的位置
search()方法
:search()方法可以返回指定模式的子串在字符串首次出现的位置,相对于indexOf()方法来说功能更强大。
split()方法
:split()方法用于根据指定的分隔符将一个字符串分割成字符串数组,其分割后的字符串数组中不包括分隔符。
replace()方法
:replace()方法用于替换字符串,用来操作的参数可以是一个字符串或正则表达式。