正则表达式

113 阅读2分钟

介绍

RegExp 是regular expression的缩写

  1. 正则表达式描述了字符的模式对象
  2. 当需要检索某个对象时,可以使用一种模式(RegExp)来描述要检索的对象
  3. 简单的模式可以是一个字符串
  4. 复杂的模式包含更多字符,可以进行解析,字符检查,替换等
  5. 可以规定检索的位置,检索的字符类型,等
 语法: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 image.png

图2

image.png

使用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

image.png

添加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

image.png

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 1641270526(1).png

    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

image.png

场景

input 输入框校验输入内容是否合规;

在网络初始阶段,前端使用正则表达式,校验input输入框内容,减少用户提交不合规数据到后端返回错误提示,优化用户浏览网页等待时间。

校验:手机号是否符合规范
      姓名必须全中文