介绍
RegExp 是regular expression的缩写
- 正则表达式描述了字符的模式对象
- 当需要检索某个对象时,可以使用一种模式(RegExp)来描述要检索的对象
- 简单的模式可以是一个字符串
- 复杂的模式包含更多字符,可以进行解析,字符检查,替换等
- 可以规定检索的位置,检索的字符类型,等
语法:new RegExp(patterns,modifiers);
接收两个参数: 模式 修饰符
修饰符
g 全局匹配(执行全局匹配,并非在找到第一个符合项停止)
i 不区分大小写
m 可以执行多行匹配
match 匹配
简单的模式
let easyText = 'where';
let pattern = /er/i;
console.log('简单的匹配:','\n符合的内容:',easyText.match(pattern));
document.write(easyText.match(pattern));
图1
图2
使用test()
检验字符串中是否包含符合的内容,真为true,假为false
let text5 = 'Is this all this \is?';
// let pattern4 = /is/gi;
let pattern4 = new RegExp('\.S');
console.log('判断真假:','\n结果:',pattern4.test(text5));
图3
添加modifiers 修饰符
let text5 = 'Is this all this \is?';
// let pattern4 = /is/gi;
// let pattern4 = new RegExp('\.S');
let pattern4 = new RegExp('\.S','gi'); //全局搜索,不区分大小写
console.log('判断真假:','\n结果:',pattern4.test(text5));
图4
exec()
RegExp 的构造函数:RegExp.prototype.exec()
检索字符串中的值,找到符合描述项立刻返回,返回值是被找到的值,依次调用,直到没有,找不到返回null;
let text1 = "aet,bet,det,fet";
let pattern = /.et/g;
var mattern = pattern.exec(text1);
console.log('全局开始:','\nmattern: ', mattern,'\nindex: ', pattern.index,'\nlastIndex: ', pattern.lastIndex);
图5
document.write('第二次查找:' + pattern.exec(text1) + '<br>')// 第二次查找
document.write('\n第三次查找:' + pattern.exec(text1) + '<br>') // 第三次查找
document.write('\n第四次查找:' + pattern.exec(text1) + '<br>') // 第四次查找
document.write('\n第五次查找:' + pattern.exec(text1) + '<br>') // 第五次查找 找不到返回null
图6
场景
input 输入框校验输入内容是否合规;
在网络初始阶段,前端使用正则表达式,校验input输入框内容,减少用户提交不合规数据到后端返回错误提示,优化用户浏览网页等待时间。
校验:手机号是否符合规范
姓名必须全中文