JS---Regexp正则表达式基础大全

本文详述了JavaScript中的正则表达式基础,包括如何新建正则对象、使用方法如test()和exec(),以及各种匹配规则如元字符、重复类、字符类和修饰符。还介绍了预定义模式、特殊字符、组匹配以及在实际场景中如手机号、QQ号和邮箱的正则验证应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习内容:

一、新建

  1. RegExp构造函数    eg:  var re=new RegExp(“a”);
  2. 使用字面量(常用)   eg:  var re=/a/ ;

二、方法

  1. teat( ) 返回一个布尔值,方法用于匹配字符串,匹配成功返回true,失败返回false
  2. Exec( ) 返回匹配结果,发现匹配,就返回一个以每个匹配成功的字符串组成的类数组集合,否则返回null

方法属性:

     Index 表示匹配项在字符串中的位置

     input 表示原字符串 

     正则方法(字符串)

三、匹配规则

     1.字面量字符:

      在正则表达式中,某个字符只表示它字面的含义,比如/a/匹配a

      数字、大小写、符号

     2.元字符:

     除字面量字符以外,还有一部分字符有特殊含义,不代表字面意思,叫“元字符”。如果要匹配它们本身,需要在它们前面加上反斜杠进行转义,比如匹配加号,就要写成 \+

 (1)正则中需要用斜杠转义的字符:

       ^ 、. 、 [ ] 、$ 、( 、) 、|、*、+、?、{ 、}、\\

  点字符: 匹配除回车\r、换行\n、行分隔符\u、段分隔符\u2029以外的所有字符

  位置字符:^ 表示字符串的开始位置

                  $ 表示字符串的结束位置

  竖线符号:| 在正则中表示“或关系”即a|b表示匹配a或b

(2)如果使用RegExp 方法生成正则对象,转义需要使用俩个斜杠,因为字符串内部会先转义一次

     3.重复类:

  模式的精确匹配次数,用大括号{ }表示,{n}表示恰好重复n次,{n,}表示至少重复n次,{n,m}表示重复不少于n次,不多于m次

     4.量词符:

  ?问号表示某个模式出现0次或1次,等同于{0,1}  最多1次

  * 星号表示某个模式出现0次或多次,等同于{0,}    无影响

  + 加号表示某个模式出现1次或多次,等同于{1,}    至少1次

      5.字符类:

  表示有一系列字符可供选择,只要匹配其中一个就可以,所有可供选择的字符都放在方括号内,如:[abc] 表示a、b、c之中任选一个匹配

      1). 脱字符:

     如果方括号内第一个字符是[^],则表示除了字符类中的字符,其他字符都可以匹配,如:[^abc] 表示除了a、b、c之外都可以匹配

      2). 连字符:

   对于连续序列的字符,连字符用来提供简写模式,表示字符的连续范围,

如:[abc]  可写[\u4e00-\u9fa5]

       中文[\u4e00-\u9fa5]

       6.修饰符(模式修正符):

    修饰符表示模式的附加规则,放在正则模式的最尾部,修饰符可以单个使用,也可以多个一起使用

1) g 默认情况下,第一次匹配成功后,正则对象就停止向下匹配,g 修饰符表示全局匹配

2) i 默认情况下,正则对象区分字母的大小写,加上i修饰符以后表示忽略大小写

3) m 表示多行模式,会修改^和$的行为,默认情况下,^和$匹配字符串的开始处和结尾处,加上m修饰符后,^和$识别换行符\n

       7.预定义模式:

指某些常见模式的简写方式:

\d 匹配0-9 之间的任一数字,相当于[0-9]

\D匹配所有0-9以外的字符串,相当于[^0-9]

\w匹配任意的字母、数字和下划线以外的字符,相当于[A-Za-z0-9]

\W除所有字母,数字和下划线以外的字符,相当于[^AZa-z0-9]

\s匹配空格,包括制表符、空格符、断行符等

\S匹配非空格的字符

\b匹配单词的后边界

\B匹配非单词的边界

       8.特殊字符:

   [\b] 匹配退格键

   \n 匹配换行键

   \r  匹配回车键

   \f  匹配换页符

   \t  查找制表符tab

       9.组匹配:

   正则表达式的括号表示分组匹配,括号中的模式可以用来匹配分组的内容

 Var str=’abcdef’;

      Var reg=[(abc)(def)];

      Str.match(reg);[‘a’,’b’,’c’]

四、匹配方法:

    match( ):接受一个参数,正则去匹配字符串,如果匹配成功,就返回匹配成功的数组,如果匹配不成功,就返回null

   Search( ):参数与match相同,返回字符串中第一个匹配的索引项,没有匹配项返回-1

   Replace( ):用于替换,接受2个参数,第一个是匹配项,第二个可以是字符串或是一个函数

   字符串.方法(正则)

五、正则的使用(

    1.手机号

          var reg1=/^1[^0124]\d{9}$/

     2.qq号

          var reg2=/^\d{6,10}$/;

     3.邮箱

           xxxxxx@xxxx.ne  

          var reg3=/\w+\@\w+\.[(com)(cn)(net)$]/;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羊️里个雲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值