js实例教程-JS正则表达式的创建方式及使用讲解

发布时间:2018-11-28 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了js实例教程-JS正则表达式的创建方式及使用讲解脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。

一、正则表达式的创建方式

方式1:/正则表达式/模式 重点掌握

  VAR regx=/[a-z]/;   var regx=/^[a-z]$/;   var regx=/^[a-z0-9]+$/i;   var regx=/^[a-z]{3}$/i;   var regx=//b[a-z]{3}/b/g;   var regx=//b[a-z]{3}/b/ig;

注意:不需要双引号括起来;两种模式(i--忽略大小写模式、g--全局模式)

方式2:new RegExp("正则表达式",模式); 了解即可

 var regx=new RegExp("[a-z]","i");

二、正则表达式对象常用的方法

2.1test()

功能:使用正则对象去匹配字符串 ,如果匹配成功返回ture,否则返回false。

例1 需求:匹配一个字符

 var regx=/[a-z]/;//定义规则(不用用双引号括起来)(1) //  var regx=/^[a-z]$/;//定义规则(不用用双引号括起来)(2) //  var regx=/^[a-z0-9]+$/i;//定义规则(不用用双引号括起来)(3) //  var regx=/^[a-z]{3}$/i;//定义规则(不用用双引号括起来)(4) //  var regx=//b[a-z]{3}/b/g;//定义规则(不用用双引号括起来)(5) //  var regx=//b[a-z]{3}/b/ig;//定义规则(不用用双引号括起来)(6)   var st="heLlo123 ni hao ma ";//待测数据   var result=regx.test(st);//校验   alert(result);//true //  分析:它会在字符串内找,找到符合规则的,就会结束. //  解决办法:添加(),此时才是佩服一个英文小写字符 //              练习:不区分大小写--+(0个或多个){4}(匹配四个字符)

说明:在(1)的测试结果是true,分析原因:由于没有边界符,当匹配到的时候就会立即返回,同时返回true,如果不匹配就继续

向下查询,如果查找最后,没有查询到则返回false。

解决思路:采用(2)的方式进行匹配,此时才是匹配一个小写的字符(判断要匹配的内容是否是以小写字符开头的字符)

补充:其它方式(3)、(4)、(5)、(6)注意分析结果

2.2 exec()

功能:根据正则表达式去查找字符串符合规则的字符串(内容)

例2 需求:查找符合要求的单词

 //   var regex=//b[a-z]{3}/b/; //(1)    var regex=//b[a-z]{3}/b/g;//(2)    var str = "da jia hao ming tian xiu xi yi tian gao xing bu";    var line=null;    while((line=regex.exec(str))!=null){     document.wrITe(line+" ");    } 

分析:(1)的使用会使程序陷入死循环,由于不是全局查询,它查询到了(此时不是null了)就停止查询了,不再向下查询,永远

是jia。

解决办法:采用(2)加上全局参数g,查询到了输出,然后会接着往下查询,直到最后没有相匹配的,则是null。

三、字符串中关于正则表达式的方法

(1)match 找到一个或多个正则表达式的匹配;返回的是匹配的值,而不是字符串的位置

(2)replace 替换与正则表达式匹配的子串

(3)split 把字符串分割为字符串数组

 //(1)功能--查找:找到一个或多个正则表达式的匹配(只要匹配到就返回)    var s="abGdg".match(/[a-z]+/);//注意参数    alert(s);    //(2)功能--替换:替换与正则表达式匹配的子串(这里特殊之处是去掉字符串中的数字)    var s2="ab123ddddd456cccc".replace(/[0-9]+/g,"");//注意参数    alert(s2);    //(3)功能--分割:把字符串分割为字符串数组    var s3="a=b=c".split("=");//注意参数    alert(s3);    alert(s3.length);

四、简单应用

 var str = "hello123";  var reg = /^[A-Z0-9]+$/i;  //注意加上^和$(开头和结尾)  alert("匹配吗?"+reg.test(str)); 

需求:查找出三个字符组成的单词

 var str  ="da jia hao hao xue xi a";  var reg = //b[a-z]{3}/b/gi;//注意全文查找加上 g,/b表示一个单词的边界  var line ="";  while((line = reg.exec(str))!=null){   document.write(line+" ")  }  

一、正则表达式的创建方式

方式1:/正则表达式/模式 重点掌握

  var regx=/[a-z]/;   var regx=/^[a-z]$/;   var regx=/^[a-z0-9]+$/i;   var regx=/^[a-z]{3}$/i;   var regx=//b[a-z]{3}/b/g;   var regx=//b[a-z]{3}/b/ig;

注意:不需要双引号括起来;两种模式(i--忽略大小写模式、g--全局模式)

方式2:new RegExp("正则表达式",模式); 了解即可

 var regx=new RegExp("[a-z]","i");

二、正则表达式对象常用的方法

2.1test()

功能:使用正则对象去匹配字符串 ,如果匹配成功返回ture,否则返回false。

例1 需求:匹配一个字符

 var regx=/[a-z]/;//定义规则(不用用双引号括起来)(1) //  var regx=/^[a-z]$/;//定义规则(不用用双引号括起来)(2) //  var regx=/^[a-z0-9]+$/i;//定义规则(不用用双引号括起来)(3) //  var regx=/^[a-z]{3}$/i;//定义规则(不用用双引号括起来)(4) //  var regx=//b[a-z]{3}/b/g;//定义规则(不用用双引号括起来)(5) //  var regx=//b[a-z]{3}/b/ig;//定义规则(不用用双引号括起来)(6)   var st="heLlo123 ni hao ma ";//待测数据   var result=regx.test(st);//校验   alert(result);//true //  分析:它会在字符串内找,找到符合规则的,就会结束. //  解决办法:添加(),此时才是佩服一个英文小写字符 //              练习:不区分大小写--+(0个或多个){4}(匹配四个字符)

说明:在(1)的测试结果是true,分析原因:由于没有边界符,当匹配到的时候就会立即返回,同时返回true,如果不匹配就继续

向下查询,如果查找最后,没有查询到则返回false。

解决思路:采用(2)的方式进行匹配,此时才是匹配一个小写的字符(判断要匹配的内容是否是以小写字符开头的字符)

补充:其它方式(3)、(4)、(5)、(6)注意分析结果

2.2 exec()

功能:根据正则表达式去查找字符串符合规则的字符串(内容)

例2 需求:查找符合要求的单词

 //   var regex=//b[a-z]{3}/b/; //(1)    var regex=//b[a-z]{3}/b/g;//(2)    var str = "da jia hao ming tian xiu xi yi tian gao xing bu";    var line=null;    while((line=regex.exec(str))!=null){     document.write(line+" ");    } 

分析:(1)的使用会使程序陷入死循环,由于不是全局查询,它查询到了(此时不是null了)就停止查询了,不再向下查询,永远都

是jia。

解决办法:采用(2)加上全局参数g,查询到了输出,然后会接着往下查询,直到最后没有相匹配的,则是null。

三、字符串中关于正则表达式的方法

(1)match 找到一个或多个正则表达式的匹配;返回的是匹配的值,而不是字符串的位置

(2)replace 替换与正则表达式匹配的子串

(3)split 把字符串分割为字符串数组

 //(1)功能--查找:找到一个或多个正则表达式的匹配(只要匹配到就返回)    var s="abGdg".match(/[a-z]+/);//注意参数    alert(s);    //(2)功能--替换:替换与正则表达式匹配的子串(这里特殊之处是去掉字符串中的数字)    var s2="ab123ddddd456cccc".replace(/[0-9]+/g,"");//注意参数    alert(s2);    //(3)功能--分割:把字符串分割为字符串数组    var s3="a=b=c".split("=");//注意参数    alert(s3);    alert(s3.length);

四、简单应用

 var str = "hello123";  var reg = /^[A-Z0-9]+$/i;  //注意加上^和$(开头和结尾)  alert("匹配吗?"+reg.test(str)); 

需求:查找出三个字符组成的单词

 var str  ="da jia hao hao xue xi a";  var reg = //b[a-z]{3}/b/gi;//注意全文查找加上 g,/b表示一个单词的边界  var line ="";  while((line = reg.exec(str))!=null){   document.write(line+" ")  }  

觉得可用,就经常来吧!Javascript技巧 脚本宝典 欢迎评论哦! js技巧,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的js实例教程-JS正则表达式的创建方式及使用讲解全部内容,希望文章能够帮你解决js实例教程-JS正则表达式的创建方式及使用讲解所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。