什么是正则
正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。
应用场景
1)对表单域项目(用户名、密码、邮箱、qq号码、手机等等)进行验证
2)网络爬虫(一个网站到另一个网站的页面上去获取对方的相关信息)
3)内容替换、获取
4) 手机号替换:替换前:13412345678 替换后 1345678
5) 敏感词替换:
语法
语法:var regexp = /正则表达式/修饰符;
修饰符说明
标志 | 说明 |
---|---|
i | 忽略大小写 |
g | 全局匹配 |
gi | 全局匹配+忽略大小写 |
正则的字符串调用函数
在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。
search() 方法
语法:字符串对象.search(待查找的字符串|正则)
作用:用于搜索字符串中指定的元素
返回:返回符合条件的第一个元素下标,没找到返回-1
match()
语法:字符串对象.match(待匹配的字符串|正则表达式)
作用:匹配符合条件的内容
返回:返回一个数组
replace() 方法
语法:字符串对象.replace(待匹配的字符串|正则表达式,替换的内容)
作用:用于替换字符串中的数据
返回:返回新的字符串(替换后的字符串)
正则语法(理解)
正则字符类
元字符 | 说明 |
---|---|
[a-z] | 匹配a-z任意一个字符 |
[A-Z] | 匹配A-Z任意一个字符 |
[a-zA-Z] | 匹配26个英文字母(大小写) |
[0-9] | 匹配一个数字 |
[0-9a-zA-Z_] | 匹配一个字符可以是数字、字母和下划线 |
[^0-9] | 匹配非数字,就是数字以外任何的东西 |
[^a-zA-Z] | 匹配非字母 |
[] 表示我们可以匹配里面的内容,可以随意指定其它字符
常用字符类
元字符 | 说明 |
---|---|
\d | 匹配数字相当于 [0-9] |
\D | 匹配任意非数字的字符 0-9 |
\w | 匹配字母或数字或下划线 [0-9a-zA-Z_] |
\W | 匹配任意不是字母,数字,下划线 0-9a-zA-Z_ |
\s | 匹配任意的空白符,空格 |
\S | 匹配任意不是空白符的字符 |
. | 匹配除换行符以外的任意单个字符 |
^ | 表示匹配行首的文本(以谁开始) |
$ | 表示匹配行尾的文本(以谁结束) |
重复字符
限定符 | 说明 |
---|---|
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次,最少出现n次 |
{n,m} | 重复n到m次 |
[] | 匹配字符组内的字符 [abc] |
( str1 l str2 ) | 匹配字符串str1或者str2 |
手机号检测
规律
第一位 1
第二位 3 5 6 7 8 9
第三位及以后 0-9
因此正则表达式为
var reg = /^1{1}[356789]{1}\d{9}$/
邮箱地址检测
第一部分: 字母 数字 _ 长度 6-18
第二部分: @ 长度 1
第三部分: 数字 字母 长度 2-10
第四部分: . 在正则中是任意符号 使用普通字符串. 需要转义 \.
第五部分: com cn net
因此正则表达式为
var reg = /^\w{6,18}@[\da-z]{2,10}\.(com|cn|net)$/;