您的位置:首页 > Web前端 > JavaScript

js之正则表达式1

2015-12-09 17:04 489 查看
1.正则的作用,简单来说主要是以下几个:匹配,替换,搜索,提取

2.正则的两种创建形式:

A:perl风格,简单快速,语法:var  reg=/pattern/[flages];   解释:pattern是模式,就是你想要点匹配效果,flages是标志组合:有三个值,g全文搜索,i       忽略大小写,m多行查找。

      eg:想要在一个字符串中查找是否含有字母a,忽略大小写,全文搜索,多行,正则语句这样写   var reg=/a/gim; 

B:js风格,语法: var reg=new RegExp("pattern","flages");参数的意义跟上面的一样,同样的上面的需求用js风格来写就有:

var    reg=new   RegExp("a","gim");

3.js的使用方法,主要两种:

A:正则表达式对象,即正则表达式自带的方法主要有两个,test()和exec(),其中前者的返回值是布尔型,后者是一个数组,下标为0的表示的是完整匹配的值,下标1-n表示的是后面分组分组(后面会讲到)的匹配.

       示例:var str="running  in  the rain is  a  Beautiful thing  and  looks like  a  beauty";

       var reg=/beau/gi; 

alert(reg.test(str));//显示的是true

alert(reg.exec(str));//什么也没有

对于上面的结果要特别做一个说明,因为使用了g这全局参数,所以在执行的test的时候整个的游标已经移到最后面了,在进行exec时就会查找不到。

对于表达式对象的exec方法,不加入g,则只返回第一个匹配,无论执行多少次均是如此,如果加入g,则第一次执行也返回第一个匹配,再执行返回第二个匹配,依次类推。对于exec方法,表达式加入了g,并不是说执行exec方法就可以返回所有的匹配,而是说加入了g之后,我可以通过某种方式得到所有的匹配,这里的“方式”对于exec而言,就是依次执行这个方法即可。所以对于上面的问题如果我想返回所有的匹配就要这样写:

var str="running  in  the rain is  a  Beautiful thing  and  looks like  a  beauty";

var reg=/beau/gi;

var a;

  while((a=reg.exec(str))!=null){

alert(a[0]);

}

B:String对象:这个就是String对象所拥有的方法主要的有:search,match,replace和split。这里说一下match,他是一次性返回所有的结果,但前提是加了g,如果不加g也是只会返回第一个匹配。需要说明的是如果加上了g   match是一次性返回所有的结果即它的结果直接是一个匹配结果的数组,这一点要与exec区分开,exec即使加上了g也需要使用while循环来依次取出。replace方法使用的重点也是在g的使用上有g就是替换所有,没有就是替换第一个。

理解了这些后面的匹配模式就会容易搞懂写,接下来会继续更新关于模式这方面的详细讲解。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  正则表达式