正则表达式
是专门用来验证字符串的一种规则,我们可以自由的编写我们想要的验证规则,然后通过相关方法让这个正则去验证指定的字符串,并返回我们希望得到的结果
正则表达式是一种单独的语言,与使用环境的开发无关(任何开发环境都可以是用正则表达式)
1.创建正则表达式
var regExp=new RegExp('','');
第一个参数是正则表达式的主体内容
第二个参数是正则的修饰符
var regExp=new RegExp('[0-9]{2,3}','g');
使用字面量创建正则:两斜杠之间是正则的主体,最后一个斜杠后是正则修饰符
var regExp=/\d{2,3}/g;bbs
2.如何用正则验证字符串(5种);
正则对象下两种方法,字符串下三种方法。
a.使用正则对象下的方法调用正则
var regExp=/a/;
var str='hglasdkjflsdkfjadlfajf';
i.test()方法:如果找到正则规则中匹配的字符返回true,参数是要验证的字符串
console.log(regExp.test(str));
ii.exec()方法:搜索字符串中符合正则规则的字符,并把第一个匹配的字符返回出来,如果没有,返回false
console.log(regExp.exec(str));
b.字符串对象下的正则验证方法
在引号中出现的字符就是字符串;
在//之间出现的是正则
iii.search()方法,找到参数指定的字符并返回下标,如果没有找到,就返回-1.
参数可以使用字符串,也可以是正则表达式
console.log(str.search('a'));
console.log(str.search(/a/));
iv.replace()敏感词替换
var str='hello ohayou,world';
str.replace('要替换的','替换的内容');
console.log(str.replace('hello|world','***'));
v.match()用数组的方式返回
var str='hello world';
str.match('e');
str.match(/e/g);
3.正则规则
修饰符用来修饰正则表达式的字符
i:让正则表达式不区分大小写的匹配
g:执行时让正则在匹配时全局匹配,而不是找到一个符合条件后停止,i和g没有顺序要求。
var str='akjfdAkjfsaSA';
var regExp=/a/ig;
console.log(str.match(regExp));
正则中符号的两大类型:修饰者(本身不代表任何字符);被修饰者(代表某一类字符).
(abc):查找abc这三个单词;
(abc|bcd|def)查找这三个单词中的一个;
[12345]包括12345中的一个;
[abc]包括abc中的一个字母
[0-9]包括所有数字;
[a-z]包括所有小写字母
[A-Z]包括所有大写字母
[A-z]包括所有字母
[0-9a-z]所有数字和小写字母
[^ab]除了字符ab
元字符
.代表任何的一个字符,若要加.时需用转义符;
\w任何字母,数字,下划线
\W任何非字母,数字,下划线
\d任何数字
\D任何非数字
\s空白字符
\S非空白字符
\b查找单词边界
\B查找非单词边界
量词
^n匹配开头为n的字符串
n$匹配结尾为n的字符串
n+匹配任何包含至少一个n的字符串
n{x}匹配任何包含x个n的字符串
n{x,y}匹配任何包含x到y个n的字符串
工具网站https://regexper.com
4.
判断字符串中全部由数字构成
/^\d+$/
判断文件后缀为pdf
/.+(\.pdf)$/
判断手机号
/^1[34578]\d{9}$/
验证邮箱 开头字母,数字,下划线。中间@数字,字母,下划线。后面A-z{2,6}
/^\w+@\w+\.[A-z]{2,6}$/