正则表达式
所谓的正则表达式 就是"规则表达式", 它用来描述字符串的匹配(查找)规则.
创建正则表达式
字面量:
var reg = /规则/修饰符
实例化对象:
var reg = new RegExp( '规则' , '修饰符' )
修饰符
g 全局匹配
i 忽略大小写
m 多行匹配
注意: 修饰符可以忽略不写. 可以同时使用多个修饰符
元字符
元字符是一些有特殊含义的符号.
元字符 | 含义 | |
\d | 1个数字字符 | |
\D | 1个非数字字符 | |
\w | 1个数字/字母/下划线 | |
\W | 1个非数字/字母/下划线 | |
\s | 1个空格 | |
\S | 1个非空格 | |
\b | 1个单词边界 | |
{n} | 匹配连续n个 | |
{m,n} | 匹配连续m-n个 | |
{n, } | 匹配连续至少n个 | |
[^] | 匹配多个字符以外的其他字符 | [^012] 匹配除了012以外的其他字符 |
[] | 匹配多个字符中的1个 | [123456] 匹配1到6中任何1个, 可以简写为 [1-6] [a-z] 匹配任何一个小写字母 [0-9] 匹配任何一个数字字符 和 \d 的功能一样 |
^ | 以x开头 | |
$ | 以x结尾 | |
. | 匹配任意1个字符(除换行以外) | |
+ | 匹配连续至少1个, 类似于 {1,} |
\a 不是特殊元字符
字符串的方法
str.replace( 正则表达式, 替换后的内容 )
str.search( 正则表达式 )
str.match( 正则表达式 )
正则的属性和方法
用typeof 检测正则表达式的类型, 结果是"object", 说明正则表达式本质上是对象:
属性/方法 | 解释 |
global | 是否全局匹配 |
ignoreCase | 是否忽略大小写 |
multiLine | 是否多行匹配 |
lastIndex | 保存每次查找到的内容的下一个字符的位置 |
test() | 判断字符串和正则表达式是否匹配成功 |
exec() | 查找和正则匹配的字符串 |
注意: 只有在指定了m全局匹配时, lastIndex属性的值才是有意义的.
正则表达式的应用
验证手机号
/^1[3-9]\d{9}$/
验证邮箱
/^\w{1,}@\w{1,}\.(com|cn|net)$/或/^\w+@\w+\.(com|cn|net)$/
验证密码
/^.{6,10}$/
查找特殊字符
/\W/
验证验证码
/^[0-9a-zA-Z]{4}$/