正則表達(dá)式中特殊符號(hào)及正則表達(dá)式的幾種方法總結(jié)(replace,test,search)
一 正則表達(dá)式的正文。
正則表達(dá)式中使用了特殊符號(hào)。下面我就將各種符號(hào)以及其意義和用法簡(jiǎn)單的介紹一下(說(shuō)明:"X以上包括X"):
/ 表示在其后的文字是特殊符號(hào)。例:"n"和"n"是一致的。"/n"和換行符是一致的。
^ 和輸入的開(kāi)始一致。
$ 和輸入的結(jié)尾一致。
* 與此符號(hào)之前的文字0次以上相同的話,兩者一致。例:"zo*"和"zoo","z"都一致。
+ 與此符號(hào)之前的文字1次以上相同的話,兩者一致。例:"zo*"和"zoo"一致,但和"z"不一致。
? 與此符號(hào)之前的文字0次或1次相同的話,兩者一致。例:"a?ve?"和"never"的"ve"一致。
. 與除了換行符的所有單一文字一致。
(正則表達(dá)式) 以所指定的表達(dá)式尋找一致文字。如果找到了,儲(chǔ)存下來(lái)。一致的部分可以從
Match方法獲得的陣列中找到。
x|y x和y的任意一方相同都會(huì)被認(rèn)為一致。例:"(z|f)ood"和"zood","food"都一致。
{n} n是0以上的整數(shù)。與其前的文字n次相同的話,兩者一致。例:"o{2}"和"Bob"中的"o"不一
致,與"foooood"中的前兩個(gè)"o"一致。
{n,} n是0以上的整數(shù)。與其之前的文字至少n次相同才一致。
{n,m} 兩者整數(shù)。n至m范圍的次數(shù)一致。
[xyz] 與中括號(hào)中的文字任意一個(gè)相同都被認(rèn)為一致。
[^xyz] 與上面的相反。
[a-z] 文字的范圍,從"a"到"z"的文字都被認(rèn)為一致。
[^a-z] 與上面的相反。
/b 表示單詞的末尾。例:"er/b"和"never"的"er"一致,但和"verb"的"er"不一致。
/B 表示非單詞的末尾。
/d 表示數(shù)字。
/D 表示非數(shù)字。
/s 表示空格。
/S 表示非空格。
/w 表示所有字母數(shù)字。
/W 表示非所有字母數(shù)字。
i (忽略大小寫)
g (全文查找出現(xiàn)的所有 pattern)
gi (全文查找、忽略大小寫)
/num num應(yīng)該被賦予一個(gè)正數(shù)。與已經(jīng)儲(chǔ)存的部分比較。例:"(.)/1"和任意的兩個(gè)連續(xù)的相同
文字一致。
二 如何定義一句正文:
方法一:直接寫
var s=/正則表達(dá)式/i或g或ig
方法二:建立對(duì)象實(shí)例:
var s=new RegExp(正則表達(dá)式,i或g或ig)
三 與正則表達(dá)式有關(guān)的方法:
1 exec方法
描述: 在制定的文字行內(nèi)進(jìn)行搜索。
結(jié)構(gòu): 正則表達(dá)式.exec(字符串)。
解說(shuō): 檢索的返回:
null 沒(méi)有檢索到;
一致的結(jié)果 檢索到后;
例:
代碼片段如下:
<script>
var s='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp'
var r=new RegExp('g','i');
var a=r.exec(s);
alert(a);
</script>
2 compile方法:
描述: 修改正則表現(xiàn)的內(nèi)部形式。
結(jié)構(gòu): 正則表達(dá).compile('正文','g或i或ig')。
解說(shuō): 沒(méi)什么好說(shuō)的。
例:
代碼片段如下:
<script>
var s='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp'
var r=new RegExp('[A-Z]','g');
var a=s.match(r);
alert(a);
r.compile('[a-z]','g');
var a=s.match(r);
alert(a);
</script>
3 test方法:
描述: 顧名思義,做測(cè)驗(yàn)。
結(jié)構(gòu): 正則表達(dá).test(字符串)。
解說(shuō): 返回:
false 沒(méi)找到;
true 找到了;
例:
代碼片段如下:
<script>
var re=/re/g;
var msg='return';
var msg1='goon';
alert(re.test(msg));
alert(re.test(msg1));
</script>
4 replace方法:
描述: 尋找一致的并置換他。
結(jié)構(gòu): 字符串.replace(正則表達(dá),替換字符串)。
解說(shuō): 與字符串不變化,返回其副本。
例:
代碼片段如下:
<script>
var s='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp'
var r=new RegExp('[A-Z]','g');
var a=s.replace(/[a-z]/g,'A');
alert(a);
</script>
5 match方法:
描述: 實(shí)行檢索。
結(jié)構(gòu): 字符串.match(正則表達(dá))。
解說(shuō): 返回?cái)?shù)列。
例:
代碼片段如下:
<script>
var re=/re/g;
var msg='rererere';
var msg1='goon';
alert(msg.match(re));
alert(msg1.match(re));
</script>
6 split方法:
描述: 分割字符串。
結(jié)構(gòu): 字符串.split(正則表達(dá))。
解說(shuō): 返回?cái)?shù)列。
例:
代碼片段如下:
<script>
var s="hello this good world";
var p=//s/g;
var a=s.split(p);
alert(a);
</script>
7 search方法:
描述: 返回一致的字符串的位置。(這比indexOf可用途廣多了!)
結(jié)構(gòu): 字符串.search(正則表達(dá))。
解說(shuō): 返回
正整數(shù) 如果找到了
-1 如果沒(méi)找到
例:
代碼片段如下:
<script>
var s="hello this good world";
var p=/good/g;
var a=s.search(p);
alert(a);
</script>
把replace的方法的例子改一下:
代碼片段如下:
<script>
var s="hellOSCF";
var r=new RegExp("[A-Z]","g");
s=s.replace(r,"a");
alert(s)
</script>
最后是他的各種屬性
1 lastIndex屬性:
描述: 設(shè)定檢索開(kāi)始的位置,可以得到其值
結(jié)構(gòu): 正則表達(dá).lastIndex(=值).
解說(shuō):
當(dāng)lastIndex大于檢索文字長(zhǎng)度的時(shí)候,如果用test,exec方法執(zhí)行的話,執(zhí)行失敗,
lastIndex屬性被設(shè)定為0.
當(dāng)lastIndex等于檢索文字長(zhǎng)度的時(shí)候,如果表達(dá)式正文是空的話,一致.其他場(chǎng)合,
執(zhí)行失敗,重設(shè)為0.
上記以外的情況,lastIndex會(huì)被設(shè)定為最后一致的文字列的位置指針.
2 source屬性
描述: 返回正則表達(dá)的正文
結(jié)構(gòu): 正則表達(dá).source
例:
代碼片段如下:
<script>
var s=/[a-z]{3}/W/s/g;
var s1=new RegExp("[a-z]{3}/W","g");
alert(s.source);
alert(s1.source);
</script>
下面我將幾個(gè)處理字符函數(shù)寫出來(lái):
1 嚴(yán)禁數(shù)字
代碼片段如下:
function check(msg){
var exe=//d/g;
if(exe.test(msg))return(0);
else return(1)
}
2 只準(zhǔn)字母
代碼片段如下:
function check(msg){
var exe=//W/g;
if(exe.test(msg))return(0);
else return(1);
}
3 嚴(yán)禁代碼
代碼片段如下:
function check(msg){
var exe=/<(/w|/W)*>/g;
if(exe.test(msg))return(0);
else return(1);
相關(guān)文章
Extjs4實(shí)現(xiàn)兩個(gè)GridPanel之間數(shù)據(jù)拖拽功能具體方法
這篇文章主要介紹了Extjs4實(shí)現(xiàn)兩個(gè)GridPanel之間數(shù)據(jù)拖拽功能具體方法,有需要的朋友可以參考一下2013-11-11Highcharts使用簡(jiǎn)例及異步動(dòng)態(tài)讀取數(shù)據(jù)
Highcharts 是一個(gè)用純JavaScript編寫的一個(gè)圖表庫(kù), 能夠很簡(jiǎn)單便捷的在web網(wǎng)站或是web應(yīng)用程序添加有交互性的圖表,并且免費(fèi)提供給個(gè)人學(xué)習(xí)、個(gè)人網(wǎng)站和非商業(yè)用途使用,通過(guò)本文給大家介紹Highcharts使用簡(jiǎn)例及異步動(dòng)態(tài)讀取數(shù)據(jù)的相關(guān)知識(shí),感興趣的朋友一起學(xué)習(xí)吧2015-12-12JavaScript學(xué)習(xí)筆記之創(chuàng)建對(duì)象
在JavaScript中對(duì)象是一種基本的數(shù)據(jù)類型,在數(shù)據(jù)結(jié)構(gòu)上是一種散列表,可以看作是屬性的無(wú)序集合,除了原始值其他一切都是對(duì)象。這篇文章主要給大家介紹JavaScript學(xué)習(xí)筆記之創(chuàng)建對(duì)象,需要的朋友參考下吧2016-03-03js實(shí)現(xiàn)按Ctrl+Enter發(fā)送效果
按Ctrl+Enter發(fā)送,思路是監(jiān)聽(tīng)textarea的onkeydown事件,當(dāng)ctrl鍵被按下,并且,keycode為13(回車),時(shí),調(diào)用發(fā)送表單的函數(shù)2014-09-09屏蔽鼠標(biāo)右鍵、Ctrl+N、Shift+F10、Alt+F4、F11、F5刷新、退格鍵
js 防止刷新網(wǎng)頁(yè)、禁止后退,右鍵等操作的代碼2010-03-03JavaScript笛卡爾積超簡(jiǎn)單實(shí)現(xiàn)算法示例
這篇文章主要介紹了JavaScript笛卡爾積超簡(jiǎn)單實(shí)現(xiàn)算法,涉及javascript數(shù)組遍歷、添加簡(jiǎn)單操作技巧,需要的朋友可以參考下2018-07-07js簡(jiǎn)單實(shí)現(xiàn)用戶注冊(cè)信息的校驗(yàn)代碼
這篇文章介紹了js簡(jiǎn)單實(shí)現(xiàn)用戶注冊(cè)信息的校驗(yàn)代碼,有需要的朋友可以參考一下2013-11-11