日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

js正则表达式的使用详解

發布時間:2023/11/27 生活经验 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js正则表达式的使用详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文轉自:http://www.jb51.net/article/39623.htm

1定義正則表達式
2關于驗證的三個這則表達式方法
3正則表達式式的轉義字符

1定義正則表達式
在js中定義正則表達式很簡單,有兩種方式,一種是通過構造函數,一種是通過//,也就是兩個斜杠。
例如

復制代碼代碼如下:
? var?? re =new RegExp("\\?(\\w{1,}=\\w{1,}&){1,}\\w{1,}=\\w{1,}");


使用構造函數定義正則表達式,注意大小寫,否則就會不起作用。由于構造函數的參數是一個字符串,也可以是兩個斜杠的方式定義,遇到一些特殊字符就需要使用\進行轉義

通過雙斜杠的方式定義同樣的正則表達式

復制代碼代碼如下:
var?? re =/\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/;

?

復制代碼代碼如下:
var re =new RegExp( /^\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/);


可以和構造函數達到同樣的效果,但仔細分析,發現,通過構造函數需要更多的轉義字符\

2關于驗證的三個正則表達式方法

使用正則表達式的主要有字符串的方法match,正則表達式的方法exec,test

正則表達式方法test測試給定的字符串是否滿足正則表達式,返回值是bool類型的,只有真和假,如果只是單純的判斷,不需要其他的處理,可以使用尤其是驗證時。

復制代碼代碼如下:
?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的例子可以改寫如下

復制代碼代碼如下:
?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其實是字符串的方法,但參數確是一個正則表達式,把上邊的例子改寫后,如下

復制代碼代碼如下:
?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等但這些方法已經不適合驗證了。

復制代碼代碼如下:
?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");????
????? }


3正則表達式式的轉義字符

在正則表達式中會經常出現轉義字符,例如問號?在正則表達式中有特殊的含義,如果需要匹配問號?就需要轉義,使用轉義字符反斜杠\

如下兩個都是匹配問號開頭的一段字符串

復制代碼代碼如下:
?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");??
???? }???

????? }

轉載于:https://www.cnblogs.com/Jtianlin/p/4357608.html

總結

以上是生活随笔為你收集整理的js正则表达式的使用详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。