1、正则表达式:
规定了字符串的字符出现的规则
真实开发中:优先面向百度开发,学习正则的目的(1、看得懂可以改 2、笔试和面试)
何时使用:切割、替换(加g)、验证(前加^后加$)
如何使用:
1、最简单的正则就是原文本身:/原文/后缀
g:找全部 i:忽略大小写
2、备选字符集:[0-9]
3、预定义字符集:简化备选字符集
一位数字:\d
一位数字字母下划线:\w
一位空白字符:\s
4、量词:
有明确数量
{n,m} - 前边相邻的字符集,至少n个,最多m个
{n,} - 前边相邻的字符集,至少n个,多了不限
{n} - 前边相邻的字符集,必须n个
无明确数量
?:可有可无,最多一个
*:可有可无,多了不限
+:至少一个,多了不限
5、选择和分组:
(规则1|规则2)
6、指定匹配的位置
开头:^
结尾:$
特殊:两者同时使用,前加^后加$,代表要求用户输入的从头到尾完全匹配 - 只要是做验证就必加
7、预判:实现密码强度
/^(?![0-9A-Za-z]+$)[0-9A-Za-z\u4e00-\u9fa5]{4}$/
2、字符串支持正则的API:
1、切割:var arr=str.split(RegExp);
2、替换:
基础替换法:
str=str.replace(RegExp,"固定新内容")
高级替换法:
str=str.replace(RegExp,a=>{
return 通过判断a关键字的长度的不同,返回不同的内容;
})
格式化:
str=str.replace(RegExp,(a,...)=>{
如果正则里有分组,我们就会得到更多的形参,有几个分组,就会多出几个形参!
始终:
第2个形参保存的是第1个分组匹配到的内容
...
})
3、正则对象:
创建: 直接量:var reg=/正则表达式/后缀 构造函数:var reg=new RegExp("正则表达式","后缀");
API:
验证:var bool=reg.test(user); - 这个bool仅仅就是给出一个正确或错误的提示