阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JavaScript 常用的正则表达式

      是否为有效数字

      规则分析

      • 可能出现+/-, 也可能不出现
        • [+-]?
      • 一位数的时候,0-9 可以,多位的时候不能为 0
        • (\d|([1-9]\d+))
      • 小数部分可能有,可能没有,一旦有,后面必须有小数点加数字;
        • (\.\d+)?
      let reg = /^[+-]?(\d|([1-9]\d+))(\.\d+)?$/;
      console.log(reg.test(1));
      console.log(reg.test(-1));
      console.log(reg.test(-1.0));
      

      验证用户密码

      规则分析:

      • 数字,字母,下划线
      • 6~16 位

      普通 JavaScript 的写法

      function checkPass(val) {
          // 长度
          if (val.length < 6 || val.length > 16) {
              return false;
          }
      
          let area = ['a', 'x', 'i', 'h', 'e', 'c', 'o', 'm', '_'];
          let array = val.split('');
          for (let index = 0; index < array.length; index++) {
              const element = array[index];
              console.log('element', element);
              if (!area.includes(element)) {
                  return false;
              }
          }
          return true;
      }
      console.log(checkPass(''));//false
      console.log(checkPass('axihe_com'));//true
      console.log(checkPass('axihe.com'));//false
      console.log(checkPass('123dd'));//false
      

      正则的写法

      let reg = /^\w{6,16}$/;
      console.log(reg.test(''));//false
      console.log(reg.test('axihe_com'));//true
      console.log(reg.test('axihe.com'));//false
      console.log(reg.test('123dd'));//false
      

      验证真实姓名

      规则:

      • 汉字,使用 Unicode 码 /[\u4e00-\u9fa5]/
      • 名字长度,2-4 位
      let reg = /[\u4e00-\u9fa5]{2,4}/;
      console.log(reg.test('朱安邦'));
      

      验证邮箱的

      规则:

      • 核心:邮箱的名字由数字,字母,下划线,-,.几部分组成,但是-.不能连续出现,也不能作为开始
      • 开头是数字,字母,下划线(1 到多位)
      • 还可以是-数字字母下划线 或者 .数字字母下划线, 整体零次到多次

      片段:anbang@www.axihe.com

      • 前面是数字字母下划线中线.
        • \w+((\.\w+)|(-\w+))*
      • @后面紧跟着一至多个数字和字母@www
        • @[A-Za-z0-9]+
      • 匹配.a-b.axihe,(在域名内,-属于合法的,可以无限anbang@an-bang.b.c.axihe.com
        • ((\.|-)[A-Za-z0-9]+)*
      • 匹配@axihe.com最后的根域名.com
        • *\.[A-Za-z0-9]+

      最终的正则如下

      let reg = /^\w+((\.\w+)|(-\w+))*@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
      
      目录
      目录