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))

 

  待续~

posted @ 2021-03-09 15:08  名字不好起啊  阅读(62)  评论(0编辑  收藏  举报