js正则的记录1--持续更新

来源:互联网 发布:linux shell定义变量 编辑:程序博客网 时间:2024/06/05 17:50

前言

这次通俗易懂的介绍一下正则,正则的使用广泛,用于匹配特定的内容。那借此文章做个记录,方便以后查找。


认识js正则

正则的由来或写法名称等等什么的,理论性东西我就不说了,因为我忘了,大家先看表,对正则留个印象。

各种词的说明

修饰词 作用 i 不分大小写的匹配字符串 g 全局匹配字符串 m 执行多行匹配,只有当使用^和$模式时才会起作用,在其他的模式中,加不加入m都可以进行多行匹配


元字符 作用描述 . 匹配除换行符以外的任意字符 \ . 匹配点号 \w 匹配除换行符以外的任意字符 \W 匹配任意非字母、数字、下划线或汉字的字符 \s 匹配任意的空白符 \S 匹配任意非空白符的字符 \d 匹配数字 \D 匹配任意非数字的字符 \b 匹配单词的开始或结束 \B 匹配不是单词开口或结束的位置 ^ 匹配字符串的开始,如果在[]中括号里面代表排除的意思 $ 匹配字符串的结束 \G 上一个匹配的结尾(本次匹配开始) \A 字符串开头(类似^,但不受处理多行选项的影响) \Z 字符串结尾或行尾(不受多行选项的影响) \z 字符串结尾(类似$,但不受处理多行选项的影响) * 匹配零次或无限次 + 匹配一次或无限次 ? 匹配一次或零次 {n} 匹配n次 {n,} 匹配n次或无限次 {n, m} 匹配n到m次 \n 匹配一个换行符。等价于\x0a和\cJ。 \r 匹配一个回车符。等价于\x0d和\cM。 V 匹配符号 /或者 -



这里我要特别说明一下修饰词M,例子:

var re=/^b./g;var str=“bd76 dfsdfsdfsdfs dffsb76dsf sdfsdf”;var rs = str.match(re);

此时加入g和不加入g,都只返回第一个匹配{bd},如果regx=/^b./gm,则返回所有的匹配{bd,b7},注意如果regx=/^b./m,则也只返回第一个匹配。所以,加入m表明可以进行多行匹配,加入g表明可以进行全局匹配,综合到一起就是可以进行多行全局匹配。
当然还有很多修饰词和元字符我没有列出来。此篇文章还会持续更新的。


两种写法

 1. var re = new RegExp("abc","igm"); 2. var re = /abc/igm;

两种写法的结果是一样的 ,匹配abc字符串,igm是修饰词。一般写正则都会用第二种,如果匹配需要传参数的时候就用第一种, 例:

var re = new RegExp(args, "g");

正则的5个方法

  • test—测试字符串是否匹配给出的匹配模式,返回布尔值;
    re.test( str );
  • search—匹配正则返回匹配值的首次位置,若没有就返回-1;
    str.search( re );
  • match—返回包含所有匹配子字符串的数组,没有匹配正确就返回mull;
    str.match( re );
  • replace—最常用的正则处理字符串方法之一,把匹配到的值替换掉.
    该方法有两个参数,第一个参数是要匹配的正则,当然也可以不是正则,就不跑题了,第二个参数是字符串,也可以是callback,这个callback也可以有1个到多个参数,callback的第一个参代表正则匹配到的主体,第二个之后都是正则的子类。例子:
    var str = "abdaji321pnvdsrf8790cnsl23vvn78q9";    var re = /(\d+)/g;    str = str.replace(re, function(ns, $1){        alert("["+ $1 +"]");    });

这个例子是找出字符串中的数字,说了到子类,再看下面这个例子:

    var str = "2016-8-27";    var re = /(\d+)(-)/g;    str = str.replace(re,function(ns,$1,$2){        return $1 + ".";    })    alert(str)

这个例子是改变日期格式的,re正则匹配到多个数字和 - 符号,如果\d不加上+号,只能匹配到一个2。大家看到 (\d+),(-),匹配数字和匹配 - 符号,而且用括号包了起来,第一个()代表的是该正则的第一个子类,以此类推,第二个()当然就代表第二个子类啦,再看看重复子类:

    var re = /(a-c)(\d+)\1\2/ig;

可以看到()后面有\1\2,意思就是重复第一个子类和第二个子类。


小结

  • 这篇文章是正则的入门基础,我没有太多的理论去帮助理解。
  • 下一篇会分享更多的例子和常用验证的正则匹配。
  • 其实正则不止5种方法,还有其他的方法会在后续更新。
0 0
原创粉丝点击