正则表达式:处理字符串的规则
作用
1.提取字符串:从指定的字符串中将符合规则部分提取出来
2.匹配正则:判断一个字符串是否和指定的规则匹配
3.替换字符串:将一个字符串中跟规矩匹配的部分替换掉
1.字符串的处理方法
字符串.search(正则)
字符串.match(正则) // 匹配成功 返回下标位置,不成功返回-1, 可以理解为查找字符串中符合正则表达式的子字符串的位置
字符串.replace(正则表达式,新内容) //替换字符串
举例:
var reg = /aaa/; // 写了一个规则,这个规则的意思是说3个a字符连在一起
var str = 'sdafaaaaa123wer'; // 一个杂乱的字符串
var arr = str.match(reg); // 从字符串中提取出符合规则的部分
console.log(arr); // ["aaa", index: 4, input: "sdafaaaaaa123wer"]
2.正则方法
正则.test(字符串)
正则.exec(字符串)
举例
/\d/.test('13522336699') //true:可匹配则返回ture,反之false
var reg = /(a)aa/g; // 贪婪匹配
var str = 'sdafaa aaaa123wer';
var arr = reg.exec(str);
console.log(arr); // ["aaa", "a", index: 7, input: "sdafaa aaaa123wer"]
3.正则的组成
3.1字符
3.1.1普通字符:普通字符串中的字符
3.1.2元字符:带有特殊含义的符号
\d 代表任意一个数字
\w 代表任意一个数字、字母、下划线
\s 代表任意一个空格
. 代表任意一个字符
[] 代表中括号中的任意一个字符
[0-9],[a-z],[A-Z],组合方式:[0-9a-zA-Z]
[\u4e00-\u9fa5] 代表任意一个汉字
3.2修饰符:修饰前面的字符
{n} 前面的字符需要出现n次
{n,} 前面的字符最少n次,最多不限
{n,m} 前面的字符最少n次,最多m次
+ 最少一次
* 任意次
? 最多一次
^ 必须以^后面指定的字符开头
$ 必须以$前面指定的字符结尾
| 或者
3.3模式修正符
g 全局匹配,贪婪模式
i 忽略大小写
gi 全局匹配+忽略大小写
4.常见案例
4.1手机号检测
var reg = /^1[345789]\d{9}$/;
//手机号开头必定是1,且第二位数在345789之间,而后随机数结尾
4.2中文检测
var reg = /[\u4e00-\u9fa5]/;
4.3文件格式检测(以什么为结尾)
// 文件格式检测 \.(jpg|jpeg|bmp)$
var str = 'as1654erarada54131.bmp'var reg = /^[a-zA-Z0-9]{6,}\.(jpg|jpeg|bmp)$/
var bool = reg.test(str)
console.log(bool)
4.4邮箱格式检测
// 邮件格式检测
/^[a-zA-Z0-9_-]+@([a-zA-Z0-9]+\.)+(com|cn|net|org)$/