• js 正则 实用整理


      正则一直用的不太熟,这里好好整理记录下。

      语法:

       例子:

     

      正则表达式中的元字符包括:( [ { ^ $ | ) ? * + . ] }         ;如果想要匹配这些字符,则需要转义:

       除上述以字面量的形式来定义正则表达式外,还可以使用 RegExp 构造函数,它接收2个参数:要匹配的字符串模式,可选的标志字符串。

     

     

      RegExp  对象主要方法是 exec(),接受一个参数(要应用模式的字符串),然后返回包含第一个匹配项信息的数组;或者无匹配项时返回null

      返回的数组虽然是 Array 实例,但是包含两个额外属性:index(匹配项所在位置),input(应用正则表达式的字符串);在数组中,第一项是与整个模式匹配的字符串,其他项是与模式中的捕获组匹配的字符串

      上述代码中,包含两个捕获组。最内部的捕获组匹配 'and baby', 而包含它的捕获组匹配 'and dad' 或者 'and dad and baby' 。

      对于 exec() 方法而言,即使在模式中设置了全局标志(g) ,它每次也只会返回一个匹配项。在不设置全局标志的情况下,在同一个字符串多次调用 exec()  将始终返回第一个匹配信息。而在设置全局标志情况下,每次都会继续查找新匹配项:

      非全局模式:(pattern1.lastIndex 每次 调用 exec() 后皆保持不变)

      全局模式:(pattern2.lastIndex 每次调用 excel() 都会增加)

     

      正则表达式第二个方法是 test(),同样接受一个字符串参数。在模式与该参数匹配的情况下返回 true,否则返回 false。如果只是想知道目标字符串是否与某个模式是否匹配,但不需要知道内容的情况下,使用此方法非常方便!

      因此 test() 方法经常用在 if 语句中:

       这种用法常用在校验用户输入,我们只想知道是否输入有效,至于它为什么无效就无关紧要了。

      But,模式还是有局限性的:

      具体字符含义,请移步基础:https://www.runoob.com/regexp/regexp-syntax.html

      整理常用正则:

      1、1-6位大写字母验证:

       2、汉字字符验证器:

       3、email:

     

       4、手机号:

       5、手机号或固定电话:

       6、数字(含小数点及+-号):

       7、非特殊字符:

       8、IP地址:

       9、日期:

       10、整数:(test(REGEXP) && !test(REGEXP2))

       11、正整数:

       12、1-10 整数:

       13、1-12 正整数:

      14、非零正整数:

       15、非负整数:(test(REGEXP) && !test(REGEXP2))

       16、非零正数4位小数:(1.*)

        (0.*)

     

       17、1位小数正数验证:

       18、自然数:(test(REGEXP) && !test(REGEXP2))

      待续~

  • 相关阅读:
    SpringBoot集成RocketMQ报错:Bad annotation definition in @ExtRocketMQTemplateConfiguration...
    RocketMQ分析
    SpringBoot 自定义 health Actuator 原理
    【质量】容错机制
    【Java】ByteBuffer介绍
    【AWS】Essentials
    【QA123】NFR 非功能性需求
    【JVM123】OOM分析和解决
    【网络123】Http返回码
    【网络123】HTTP连接
  • 原文地址:https://www.cnblogs.com/guofan/p/14504798.html
Copyright © 2020-2023  润新知