源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

js正则表达式的使用详解

  • 时间:2020-01-10 17:35 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:js正则表达式的使用详解
[b]js中的正则表达式比起C#中的正则表达式要弱很多,但基本够用了 [/b]1定义正则表达式 2关于验证的三个这则表达式方法 3正则表达式式的转义字符 [b]1定义正则表达式 [/b]在js中定义正则表达式很简单,有两种方式,一种是通过构造函数,一种是通过//,也就是两个斜杠。 例如
[u]复制代码[/u] 代码如下:
  var   re =new RegExp("\\?(\\w{1,}=\\w{1,}&){1,}\\w{1,}=\\w{1,}");
使用构造函数定义正则表达式,注意大小写,负责就会不起作用。由于构造函数的参数是一个字符串,也可以是两个斜杠的方式定义,遇到一些特殊字符就需要使用\进行转义 通过双斜杠的方式定义同样的正则表达式
[u]复制代码[/u] 代码如下:
var   re =/\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/;
[u]复制代码[/u] 代码如下:
var re =new RegExp( /^\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/);
可以和构造函数达到同样的效果,但仔细分析,发现,通过构造函数需要更多的转义字符\ [b] 2关于验证的三个正则表达式方法[/b] 使用正则表达式的主要有字符串的方法match,正则表达式的方法exec,test 正则表达式方法test测试给定的字符串是否满足正则表达式,返回值是bool类型的,只有真和假,如果只是单纯的判断,不需要其他的处理,可以使用尤其是验证时。
[u]复制代码[/u] 代码如下:
 function test(){      var text="index.aspx?test=1&ww=2&www=3"; //          var   re =/\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/;     //  var   re =new RegExp("\\?(\\w{1,}=\\w{1,}&){1,}\\w{1,}=\\w{1,}");         var result=  re.test(text);      if(result)      {         alert("ok");        }else      {       alert("err");       }                       }
正则表达式方法exec测试给定的字符串是否满足正则表达式,返回匹配到的字符串,如果没有匹配的则返回null,和test基本一致,如果需要获取匹配的各个子字符串,可以使用下标的方式,把上边的test的例子可以改写如下
[u]复制代码[/u] 代码如下:
 function test(){     var text="index.aspx?test=1&ww=2&www=3";             var   re = /\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/;    //  var   re =new RegExp( "\\?(\\w{1,}=\\w{1,}&){1,}\\w{1,}=\\w{1,}");         var result=  re.exec(text);        if(result)      {            alert("ok");                            alert(result);  // 是?test=1&ww=2&www=3,ww=2&                 alert(result[0]+",0");//是?test=1&ww=2&www=3      alert(result[1]+",1");//是ww=2&          }else      {       alert("err");       }         }
match其实是字符串的方法,但参数确是一个正则表达式,把上边的例子改写后,如下
[u]复制代码[/u] 代码如下:
 function test(){      var text="index.aspx?test=1&ww=234"; //           var   re = /\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/;      //   var   re2 = "(\\w{1,}=\\w{1,}&){1,}\\w{1,}=\\w{1,}"      var result= text.match(re);        if(result)          {                            alert(result);//?test=1&ww=234,test=1&                      alert(result[0]+",0");//?test=1&ww=234         alert(result[1]+",1");//test=1&    }else           {           alert("err");           }        }
其实字符串类还有多个函数可以传递正则表达式,split,search,replace等但这些方法已经不适合验证了。
[u]复制代码[/u] 代码如下:
 function test(){      var text="index.aspx?test=1&ww=234"; //           var   re = /\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/;      //   var   re2 = "(\\w{1,}=\\w{1,}&){1,}\\w{1,}=\\w{1,}"      var result= text.split(re);                       alert(result);                   alert(result[0]+",0");         alert(result[1]+",1");           }
[b]3正则表达式式的转义字符 [/b]在正则表达式中会经常出现转义字符,例如问号?在正则表达式中有特殊的含义,如果需要匹配问号?就需要转义,使用转义字符反斜杠\ 如下两个都是匹配问号开头的一段字符串
[u]复制代码[/u] 代码如下:
 function test(){     var text="?test=1&ww=2&www=3";            var   re = /^\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/;//  \?表示配置问号?    //  var   re =new RegExp( "^\\?(\\w{1,}=\\w{1,}&){1,}\\w{1,}=\\w{1,}");//  \\?表示配置问号?         var result=  re.exec(text);        if(result)      {            alert("ok");                   alert(result);                   alert(result[0]+",0");         alert(result[1]+",1");          }else      {       alert("err");       }         }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部