正则表达式
概念:一个用于处理字符串表达式,这个表达式表示一个规则。
处理方式:
- 验证字符串是否符合某个规则
- 正则.test(字符串) - 返回布尔值
- 字符串.search(正则) - 下标或-1
- 将字符串中满足规则部分提取出来
- 正则.exec(字符串) - 返回数组
- 字符串.match(正则) - 返回数组
- 将字符串中满足规则部分替换成新内容
- 字符串.replace(正则, 新内容)
定义:
var reg = /具体规则/
var reg = new RegExp('具体规则')
具体规则:
- 字符
- 普通字符:普通字符串中的字符
- 元字符:带有特殊含义的特殊符号
\d
- 代表任意一个数字\w
- 代表任意一个字母、数字、下划线\s
- 代表一个空格\D
- 代表任意一个非数字\S
- 代表任意一个非空格字符\W
- 代表任意一个非字母、数字、下划线的字符[很多字符]
- 代表大括号中的任意一个字符.
任意一个字符
- 修饰符
- 开头结尾
^
- 规定以谁开头$
- 规定以谁结尾
- 字符个数
{n}
- 必须n个{n,}
- 最少n个{n,m}
- 最少n个,最多m个+
- 最少1个?
- 最多1个*
- 任意个
- 在正则表达式后面使用
g
- 开启贪婪模式i
- 忽略大小写
- 在正则中间使用的
|
- 或者()
- 一个整体\
- 转义
- 开头结尾
手机号规则:
var reg = /^1[3-9]\d{9}$/
qq邮箱和网易邮箱:
var reg = /(^[1-9]\d{4,9}@qq\.com$)|(^[a-zA-Z]\w{5,17}@(((126|163)\.com)|(yeah\.net))$)/