JS正则表达式

一.作用

      正则表达式用于定义一些字符串的规则,计算机可以根据正则表达式,来检查一个字符串是否符合规则,获取将字符串中符合规则的内容提取出来

 二.创建

  /* 
  
    1.创建正则表达式的对象
      	
      语法:
      var 变量 = new RegExp("正则表达式","匹配模式");
      使用typeof检查正则对象,会返回object
      var reg = new RegExp("a"); 这个正则表达式可以来检查一个字符串中是否含有a
      在构造函数中可以传递一个匹配模式作为第二个参数,
      可以是 
          i 忽略大小写 
          g 全局匹配模式
         
   */
  var reg1 = new RegExp('abc', 'i')
  var reg2 = new RegExp('def', 'g')
  /* 
    2.使用字面量来创建正则表达式
  
      语法:var 变量 = /正则表达式/匹配模式
   */
  var reg3 = /abc/i;
  var reg4 = /def/g

三、test()方法

  /* 
      test()方法
  
      检查一个字符串是否符合正则表达式的规则,
      如果符合则返回true,否则返回false
   */
  var str = 'abc';
  var reg5 = /Ab/i;
  console.log(reg5.test(str));

四、匹配规则

  /* 
     1.表达式
         * []里的内容也是或的关系
         * [ab] == a|b
         * [a-z] 任意小写字母
         * [A-Z] 任意大写字母
         * [A-z] 任意字母
         * [0-9] 任意数字
         * [^ ] 除了(与不带[]区分)
   */
  var str2 = 'abcdefg123456';

  var reg6 = /[ah]/;
  console.log(reg6.test(str2));//true

  var reg7 = /^[a-z]/;
  console.log("1111",reg7.test(str2));//true
  /*
    2.量词
      - 通过量词可以设置一个内容出现的次数
      - 量词只对它前边的一个内容起作用
      - {n} 正好出现n次
      - {m,n} 出现m到n次
      - {m,} m次以上
      - + 至少一个,相当于{1,}
      - * 0个或多个,相当于{0,},有没有都行
      - ? 0个或1个,相当于{0,1}
  */
  var str3 = 'a3bgds2p321bkcdcc1271';
  var reg8 = /k{1,}/;
  /*
    3.
    检查一个字符串中是否以a开头结尾
      ^ 表示开头
      $ 表示结尾
  */
  var reg = /^a$/;

  /*  
  4.元字符
    \d	查找数字。
    \D	查找非数字。
    \w	匹配字母、数字、下划线
    \W  匹配非字母、数字、下划线。等价于 '[^A-Za-z0-9_]'。
    \s 匹配一个任意的空白字符 空格 /n /t
    \S 匹配一个任意的非空白字符
    \b	匹配单词边界。
    \uxxxx	查找以十六进制数 xxxx 规定的 Unicode 字符。
  */

五、相关方法

/* 
      1.split()
        - 可以将一个字符串拆分为一个数组
        - 方法中可以传递一个正则表达式作为参数,这样方法将会根据正则表达式去拆分字符串
        - 这个方法即使不指定全局匹配,也会全都插分
  */
  var str4 = 'h1e2l3l4o5w6o7r8l9d'
  var arr = str4.split(/[0-9]/)
  console.log('arr',arr);//['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
  /*
    2.search()
      - 可以搜索字符串中是否含有指定内容
      - 如果搜索到指定内容,则会返回第一次出现的索引,如果没有搜索到返回-1
      - 它可以接受一个正则表达式作为参数,然后会根据正则表达式去检索字符串
      - serach()只会查找第一个,即使设置全局匹配也没用
  */
  var str5 = 'qq7892374@cmial.com';
  var result = str5.search(/[A-Z]{1}|[0-9]/)
  console.log(result);//2
  /*
    3. match()
      - 可以根据正则表达式,从一个字符串中将符合条件的内容提取出来
        - 默认情况下我们的match只会找到第一个符合要求的内容,找到以后就停止检索
          我们可以设置正则表达式为全局匹配模式,这样就会匹配到所有的内容
          可以为一个正则表达式设置多个匹配模式,且顺序无所谓
        - match()会将匹配到的内容封装到一个数组中返回,即使只查询到一个结果	
  */
  var str6 = '1jk764ghw7678gfyu'
  var result1 = str6.match(/[A-z]/);
  var result2 = str6.match(/[A-z]/g);
  //结果 ['j', index: 1, input: '1jk764ghw7678gfyu', groups: undefined]0: "j"groups: undefinedindex: 1input: "1jk764ghw7678gfyu"length: 1[[Prototype]]: Array(0) 
  //     ['j', 'k', 'g', 'h', 'w', 'g', 'f', 'y', 'u']
  console.log(result1, result2)
  /*
    4.replace()
    - 可以将字符串中指定内容替换为新的内容
    - 参数:
      1.被替换的内容,可以接受一个正则表达式作为参数
      2.新的内容
    - 默认只会替换第一个
  */
  var str6 = '1jk764ghw7678gfyu'
  var result3 = str6.replace(/[0-9]/g,'')
  console.log(result3);//jkghwgfyu

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值