js正则表达式

1.什么是正则表达式

    规则表达式

2.应用场景

    表单的验证

3.正则的使用

   定义:

            1>字面量:var reg = /   /;

            2>构造函数 : var reg = new RegExp(' ');

         ************区别:new RegExp() -------> 可以放入变量

var str = 'abc';
var reg1 = /str/;                //str
var reg2 = new RegExp(str);      //abc

4.正则的方法

   1>test()    : 检测一个内容是否与正则匹配   如果匹配返回true   不匹配返回false

   2>exec()    : 检测一个内容是否与正则匹配  如果匹配返回数组   不匹配返回null

5.元字符

    1>      [ ]                    匹配中括号内任意一个字符

      案例 :验证手机号

var reg = /[abc]/;
var str = 'acd';
console.log( reg.test(str) );             //true

   2>     [^]                     匹配除了中括号内的任意字符

var reg = /[^abc]/;
var str = 'acd';
console.log( reg.test(str) );             //true

   3> [0-9]                   匹配数字0-9之间的数字

        [a-z]                   匹配字母 a-z之间的小写字母

        [a-zA-Z0-9]         匹配数字字母

       *********可以修改范围  如:[3-9]

var reg = /[0-9]/;
var str = 'aa1';
console.log( reg.test(str) );            //true

   4>    \d                        匹配数字

           \D                       匹配非数字

           \w                       匹配数字、字母、下划线  =====>[0-9a-zA-Z_]

           \W                      匹配非数字、字母、下划线

           \s                        匹配空格

           \S                       匹配非空格

           \b                        匹配边界

           \B                        匹配非边界

                ***********边界意为 左右为空格 或者 是第一个字符 或最后一个字符

                              如:class = 'aa bb cc'

           .                           匹配除了换行符以外的任意字符

6.转义(\)

     / . /     =======>  匹配除了换行符以外的所有字符

     / \. /         =========>只能匹配 .

7.选择符

         |                                         或

     作用:网站   / xxx.cn|cc|com |net/

8.修饰符

          i           :   不区分大小写     

                如:/a-z/i      (匹配a-zA-Z)      或     RegExp('[a-z]','i')

          g          :   全文匹配

          m  (不常用)

9.字符串可以配合正则 一起用的方法

          replace              //str.replace(reg,'**');

          match  : 类似于exec          =====>查找返回对应的值【值是数组】,没有返回null

                    *****支持全局                  //str.match(reg)       返回数组,length为匹配到的个数

10.限定符

        ^                               以 ...开始

        $                               以... 结束

           作用:验证手机号    以数字1开始  ,以数字结束

11.重复

        { n }                          重复n次

        {n,}                            重复最少n次

        {n,m}                         重复最少n次,最多m次

        *                                重复最少0次,最多不限

        +                                重复最少1次,最多不限

         ?                              重复最少0次,最多1次             //http(s)

  ****************补充事件 : oninput()    //只要输入按键了就触发

12.贪婪模式

var reg1 = /\d{3,6}/g;     //选取数字位数为6

13.非贪婪模式(懒惰模式)

var reg2 = /\d{3,6}?/g;               //选取数字位数为3

14.分组

     ():把部分内容组合在一起

15.字符类:来获取分组内的内容

        $1(第一个分组)      $2(第二个分组)      $3(第三个分组)    ... 

************前提:正则必须执行一次  必须要分组

var str = '2023-03-15';
var reg = /(\d{4})-(\d{2})-(\d{2})/;
console.log(str.replace(reg,'$1'));        //2021
var str = '2023-03-15';
var reg = /(\d{4})-(\d{2})-(\d{2})/;
reg.test(str);
console.log(RegExp.$1,RegExp.$2,RegExp.$3);   //2021 03 15

16.前瞻   (从左向右)   和      后顾   ============>  只是条件

       正向前瞻 :(?=)  ======> 匹配符合的

//正向前瞻   看一看\d数字后面是不是字母,是字母匹配到
			var reg = /\d(?=[a-z])/g;
			var str = '1a2b*%3cddd5';
			console.log(str.replace(reg,'*'));    //*a*b*%*cddd5

       负向前瞻 :(?!)   =======> 匹配不符合的

//负向前瞻   看一看\d数字后面是不是字母,不是字母匹配到
			var reg = /\d(?![a-z])/g;
			var str = '1a2b*%3cddd5';
			console.log(str.replace(reg,'*'));        //1a2b*%3cddd*

       ***********js正则没有后顾  :运行速度机制问题

17.补充

      (\w)\1+           ========>         \1匹配第一个()后面相同的内容        +表示匹配1个到多个

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值