1.什么是正则表达式?
专业的解释是:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
通俗的说法是:比如123456@qq.com,我们一看就是邮箱,那么我们是怎么判断的呢,把我们的判断方式用规定的方式写出来就是正在表达式了。
2.正则表达式的定义
var reg = new RegExp('a'); // 通过RegExp对象,参数就是我们需要制定的规则
var reg = /a/; // 简写方式,效果一样,中间不能为空,不然就是注释了
3.正则表达式的字符
匹配的项:
\s: 空格
\S: 非空格
\d: 数字
\D: 非数字
\w: 字符(字母,数字,下划线_)
\W: 非字符
. : 除换行符 \n 之外的任何单字符
\b: 单词边界部分(即开始结束与空格之间的部分)
\B: 非单词边界部分
匹配的量词:
{n,m}: 至少出现n次,最多m次
*: 任意次,相当于{0,}
?: 零次或一次
+: 一次或任意次,相当于{1,}
{n}: 正好n次
4.常用方法
test()
用途:在字符串中查找符合正则的内容,若查找到返回true,反之返回false
返回值:boolean
search()
用途:在字符串搜索符合正则的内容,搜索到就返回出现的位置(从0开始,如果匹配的不只是一个字母,那只会返回第一个字母的位置), 如果搜索失败就返回 -1
返回值:number
match()
用途:在字符串中搜索复合规则的内容,搜索成功就返回内容,格式为数组,失败就返回null
返回值:string/null
replace()
用途:查找符合正则的字符串,就替换成对应的字符串。返回替换后的内容。
返回值:string
5.具体用例
判断是否邮箱
首先来确定邮箱的规则
var reg = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/;
我们来解读这个表达式的含义
以 字母或者数字或者下划线或者任意单字符或者单杠开头,数量是一个或多个 开头
之后跟着@符号
之后跟着字母或者数字或者下划线或者任意单字符或者单杠开头,数量是一个或多个
之后跟着出现任意次 字母或者数字或者下划线或者单杠为一个或多个的组合
最后以出现2至6个次 字母或者数字或者下划线或者单杠的组合 结尾
以上是有效邮箱的格式,通过将我们的判断方式转换成对应的正则表达方式,就可以让电脑来判断了。
var str1 = '666@qq.com';
var str2 = '666@qq..com';
reg.test(str1); // true
reg.test(str2); // false
至于其他方法,可以自行测试,就不一一举例了
js正则表达式的个人记录
最新推荐文章于 2019-10-16 22:48:43 发布