JS的正则表达式,以前总是弄不懂里面的各种符号的意思,学了几遍还是很懵圈,只会用别人写好的代码块,以至于很久很久都弄不明白里面的含义,最近做了一下全面的复习,把正则用到的方法都总结了一遍,权当是加深一下记忆,因为古人说过温故而知新。
[!]正则表达式主要由修饰符、转义字符、量词、方括号、检索方法组成。
[正则表达式的写法]=>
/^.*(?=.)(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;
上面是效验密码强度的正则表达式,至少大于6个字符,且包含数字、大小写字母和特殊字符。
[修饰符]=>
[!]注意:正则表达式规定,正则表达式在检索的时候是从头开始检索,当检索到第一个符合要求的内容时就直接退出,这就导致检索不到后面的内容。
这个时候就出现了修饰符来规定检索的空间。
i:不区分大小写检索字母
'Hello'.match(/hello/i);
返回:[ 'Hello', index: 0, input: 'Hello' ]
g:全局检索,不再检索到第一个时停止。
'hello appa'.match(/a/g);
返回:['a','a']
[常用转义字符]=>
\d:数字
\D:非数字
\w:(数字,字母,下划线)
\W:非(数字,字母,下划线)
\s:空格
\S:非空格
.(点):任意字符(包括空格)
\.:查找(点)字符
[常用量词]=>
n+:代表至少一个
n*:匹配多个
^n:开始为n的字符串
n$:结尾为n的字符串
?=n:匹配任何其后紧接指定字符串 n 的字符串。
?!n:匹配任何其后没有紧接指定字符串 n 的字符串。
n:x个n以上的匹配
n:x到y区间的匹配
[正则的常用方法]=>
test();
查找字符串中符合正则表达式的内容,返回true或false。
var reg=/\d/;
var test=reg.test.(str);
console.log(test);
返回:true。
match();
查找字符串中符合正则表达式的内容,返回数组,储存检索内容,检索失败则返回null。
var str='abcd456789';
var reg=/\D/;
var match=str.match(reg);
console.log(match);
返回:['a','b','c','d']
search();
查找字符串中符合正则表达式内容的位置,返回位置,检索失败则返回-1。
var str= 'jkldwajlf654';
var reg=/d/;
var search=str.search(reg);
console.log(search);
返回:3
exec();
查找字符串中匹配正则表达式的内容,返回数组,储存检索位置、检索内容和检索字符串,检索失败则返回null。
var str='avcd5566c';
var reg=/c/;
var exec=reg.exec(str);
console.log(exec);
返回:[ 'c', index: 2, input: 'avcd5566c' ]
replace();
查找字符串中匹配正则表达式的内容,并替换成指定字符,检索失败则返回原字符。
var str='hello world';
var reg=/world/;
var replace=str.replace(reg,'javascript');
console.log(replace);
返回:hello javascript
[常用的正则表达式]=>
手机号码验证=>
/^1[3458][0-9]\d$/;
首位为1,第二位为3、4、5、8,长度等于11。
邮政编码验证=>
/^[1-9]\d$/;
首位不能为0,且只能5位字符。
身份证号码=>
十五位:
密码验证=>
/^(\w)$/;
6至12位,包含数字、字母、下划线
匹配中文=>
/^[\u4E00-\u9FA5]+$/;
领取专属 10元无门槛券
私享最新 技术干货