正则表达式(初级篇)

一、正则表达式的作用

 

1.正则表达式是描述字符模式的对象。

2.正则表达式用于对字符串模式匹配以及检索替换,是对字符串执行模式匹配的强大工具。

 

 

二、正则表达式的语法

 

 var patt=new RegExp(pattern,modifiers);     

  或者更简单的方式:

  var patt=/pattern/modifiers;

  pattern(模式) 描述了表达式的模式。

  modifiers(修饰符)用于指定全局匹配(g)、不区分大小写(i)的匹配。

 

三、正则表达式的方法

 

1.test()方法搜索字符串指定的值,根据结果返回返回真(true)或假(flase)。 

1 var str=“hello,world”;
2 var patt=/e/g;//全局匹配e
3 alert(patt.test(str)); // true

 

2.exec()方法检索字符串中指定值。返回值是被找到的值,若没有发现匹配,则返回null。

1 var str=“hello,world”;
2 var patt=/e/i;
3 alert(patt.exec(str)); //e

 

四、支持正则表达式的string对象的方法

1.match()方法可在指定字符串内检索指定的值,找到一个或多个正则表达式的匹配,并输出一个数组,如果没有任何的匹配,则返回null。

1 var str=“hello,free”;
2 var patt=/e/gi;
3 alert(str.match(patt));    // e,e,e

 

2.replace()方法用于在字符串中,用一些字符替换另一些字符,或替换一个与正则表达式相匹配的字符串。

1 var str=“hello,free”;
2 var patt=/e/g;
3 alert(str.replace(patt,””));    // hllo,fr

 

3.split()方法用于把一个字符串分割成一个字符串数组,需要注意的是,split()方法不会改变原始字符串。

  string.split(separator,limit);

    separator可选。字符串或者正则表达式,从该参数指定的地方分割string Object。

    limit可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会躲雨这个参数指定的数组长度。如果没有设置参数,整个字符串都会被分割,不考虑它的长度。

 

五、语法与释义

 基础语法

    ”^([]{})$"   ==>"开始([包含内容]{长度})结束“

   分割语法

    [A,H,T,W]包含A或H或T或W字母

 等价

    ?    等价于匹配长度{0,1}

    *    等价于匹配长度{0,}

    +    等价于匹配长度{1,}

    \d    等价于[0-9]

    \w    等价于[A-Za-z0-9]

六、常用运算符

1、^  以后面指定字符开始

2、()  标记一个字表达式的开始和结束位置

3、[]  包含,用来自定义能够匹配‘多种字符’的表达式

4、[^]  查找任何不再方括号之间的字符

5、{n,m}  匹配长度

6、.   任何单个字符(\.字符点)

7、|   或

8、\   转义

9、$  以前面指定的字符结尾

 

七、贪婪与非贪婪

    在使用修饰匹配次数的特殊符号时,有几种表示方式可以使同一个表达式能匹配不同的次数,比如:”{m,n}“,"{m,}","?","*","+",具体的次数随着被匹配的字符串而定。

     这种重复匹配不定次数的表达式在匹配过程中,总是尽可能多的匹配。

 

八、常用实例

  1、智能输入数字:  ^[0-9]*$

  2、智能输入长度为3的字符:  ^.{3}$

  3、匹配首尾空白字符:  ^\s*|\s*$

  4、匹配账号是否合法(字母开头,允许5-16字节,允许字母数字下划线):  ^[a-zA-Z][a-zA-Z0-9]{4,15}$

posted @ 2017-03-31 17:11  逻辑可  阅读(326)  评论(1)    收藏  举报