JavaScript通過(guò)RegExp類來(lái)支持正則表達(dá)式,舉一個(gè)最簡(jiǎn)單的例子:

十多年的黃陂網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都營(yíng)銷網(wǎng)站建設(shè)的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整黃陂建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)公司從事“黃陂網(wǎng)站設(shè)計(jì)”,“黃陂網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
復(fù)制代碼
代碼如下:
var
regApple
=
new
RegExp("apple");
它可以匹配一個(gè)字符串中出現(xiàn)的第一個(gè)"apple"字符串,并且對(duì)大小寫(xiě)敏感。在構(gòu)造方法中加入第二個(gè)參數(shù)"g"則代表的搜索出字符串中所有的
"apple",這里"g"代表"global"。如果第二個(gè)參數(shù)為"i",則代表著case-insensitive,匹配過(guò)程中將不考慮字母的大小寫(xiě)。將上述兩者綜合起來(lái),可以搜索出所有"apple"字符串,并且不考慮大小寫(xiě)問(wèn)題。
復(fù)制代碼
代碼如下:
var
regApple
=
new
RegExp("apple",
"gi");
正則表達(dá)式有著并不唯一的表示方法,使用Perl語(yǔ)言中的語(yǔ)法,可以將上述表達(dá)式表示為:
復(fù)制代碼
代碼如下:
var
regApple
=
/apple/gi;
創(chuàng)建了一個(gè)RegExp對(duì)象后,RegExp的方法可以構(gòu)造出不同的匹配方式,因?yàn)檎齽t表達(dá)式是對(duì)字符串進(jìn)行的操作,所以String的一些方法在構(gòu)造正則表達(dá)式的過(guò)程中也扮演著重要角色。
RegExp對(duì)象的方法
復(fù)制代碼
代碼如下:
var
sampleString
=
"Greenapple";
var
regApple
=
/apple/;
alert(regApple.test(sampleString));
上面代碼輸出的結(jié)果是"true",因?yàn)閟ampleString中包含了需要匹配的字符串"apple",這是最簡(jiǎn)單的檢測(cè)方式。有時(shí),我們需要知道匹配的詳細(xì)結(jié)果,例如:
復(fù)制代碼
代碼如下:
var
sampleString
=
"green
apples,
red
apples";
var
regApple
=
/apple/g;
var
arr
=
regApple.exec(sampleString);
通過(guò)使用exec()方法,返回的arr是關(guān)于匹配結(jié)果的一個(gè)數(shù)組,包括每一個(gè)匹配的值及其所在的段,例如上例中是"green
apples"還是"red
apples"。match()方法有著和exec()相同的功能,只是表達(dá)方式不同:
復(fù)制代碼
代碼如下:
var
sampleString
=
"green
apples,
red
apples";
var
regApple
=
/apple/g;
var
arr
=
sampleString.match(regApple);
search()方法和indexOf()比較類似,返回第一個(gè)匹配的字符串所在的位置:
復(fù)制代碼
代碼如下:
var
sampleString
=
"green
apples,
red
apples";
var
regApple
=
/apple/gi;
alert(sampleString.search(regApple));
//輸出"6"
String的方法
String的replace()方法可以將指定的字符串替換為另一個(gè)字符串:
復(fù)制代碼
代碼如下:
var
sampleString
=
"There
is
a
green
apple.";
alert(sampleString.replace("green",
"red"));
//輸出"There
is
a
red
apple."
將replace()的第一個(gè)參數(shù)替換為一個(gè)正則表達(dá)式,可以達(dá)到同樣的效果:
復(fù)制代碼
代碼如下:
var
sampleString
=
"There
is
a
green
apple.";
var
regApple
=
/apple/;
alert(sampleString.replace(regApple,
"red"));
//輸出"There
is
a
red
apple."
replace()的第二個(gè)參數(shù)可以替換為一個(gè)function(),該function()接受一個(gè)匹配字符串作為參數(shù),返回一個(gè)替換字符串。(存在疑問(wèn))
使用正則表達(dá)式可以實(shí)現(xiàn)String的split()方法相同的功能。
復(fù)制代碼
代碼如下:
var
fruit
=
"apple,pear,lemon";
var
arr
=
fruit.split(",");
使用正則表達(dá)式:
復(fù)制代碼
代碼如下:
var
fruit
=
"apple,pear,lemon";
var
reg
=
/\,/;
var
arr
=
fruit.split(reg);
/*
@param?str?the?string?to?calc?length
@param?autotrim?auto?trim?blank?char.?default?:?false
*/
function?getAbsLength(str,?autotrim)?{
if?(typeof?str?===?'undefined')?return?0;
if?(str?==?null)?return?0;
//?trim????
var?reg_trim?=?/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
var?reg_chinese_char?=?/[\u4e00-\u9fa5]/;
autotrim?=?!!autotrim;
str?=?autotrim???(str?+?"").replace(reg_trim,?"")?:?(str?+?"");
var?orig_len?=?str.length;
var?absLen?=?0;
for?(var?i?=?0;?i??orig_len;?i++)?{
if?(reg_chinese_char.test(str.charAt(i)))?{
//?chinese,?length=2
absLen?+=?2;
}?else?{
absLen?+=?1;
}
}
return?absLen;
}
除了中文,其它都算是一個(gè)字符的。。
js正則表達(dá)式格式是 var reg = /這中間寫(xiě)匹配的格式/;
常用的匹配格式有:\s(空格)\d(數(shù)字)\w(字母數(shù)字下劃線){n}(出現(xiàn)的數(shù)量)[ab](出現(xiàn)a或b)[0-9](字符集0到9)^(第一個(gè)位置)+(出現(xiàn)一次以上)?(出現(xiàn)一次或者不出現(xiàn))
reg.test("字符串")匹配成功返回true 失敗返回false
首先肯定的是JavaScript中是可以使用正則表達(dá)式的。
下面我就借鑒秒秒學(xué)上的內(nèi)容,簡(jiǎn)單說(shuō)下。
在沒(méi)有了解正則表達(dá)式之前,是很難理解它的強(qiáng)大功能的,我們先來(lái)看一個(gè)在JavaScript中使用正則表達(dá)式的語(yǔ)句。
//創(chuàng)建正則表達(dá)式,這和聲明字符串很相似,但hello不是放在雙引號(hào)中,而是在雙斜杠中’//’。
var myRE = /hello/;
示例中創(chuàng)建正則表達(dá)式的代碼其實(shí)是簡(jiǎn)寫(xiě),完整寫(xiě)法為:var myRE = new RegExp(“hello”);
/*
*使用正則表達(dá)式在字符串中查找信息。
*下面代碼使用test方法匹配字符串,這里在myString中匹配myRE中的”hello”字符串,
*若myString中能匹配到test方法,則返回true,否則返回false。匹配過(guò)程是大小寫(xiě)敏
*感的。
*/
var myString = “Does this sentence have the word hello in it?”
if( myRE.test(myString) ) {
alert(“Yes”);
}
test方法只返回true和false,而使用search方法能返回”hello”在myString中第一次出現(xiàn)的下標(biāo)。
介紹了JavaScript中使用正則表達(dá)式的用法后,下面我們來(lái)說(shuō)下正則表達(dá)式本身。
在剛剛的示例中,我們用正則表達(dá)式匹配的是字符串hello。但很多時(shí)候需要匹配的字符串是比較復(fù)雜的,如電子郵箱的格式。這時(shí)我們就要使用由普通字符以及特殊字符組成的文字模式。特殊字符也許對(duì)不了解正則表達(dá)式的人來(lái)說(shuō)就是一串亂七八糟的字符,但其實(shí)就是因?yàn)橛辛诉@些亂糟糟的字符,才能使正則表達(dá)式好些的強(qiáng)大。下面我們來(lái)了解下正則表達(dá)式中的特殊字符:
通過(guò)普通字符以及特殊字符可以組成復(fù)雜的正則表達(dá)式。如下是一個(gè)逐漸復(fù)雜的示例:
其實(shí)上面的正則表達(dá)式并不算復(fù)雜。很多常用的正則表達(dá)式可以在網(wǎng)上找到,不用我們自己編寫(xiě),如:
匹配電子郵箱:/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
匹配URL:/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/
復(fù)雜正則表達(dá)式的編寫(xiě)并不簡(jiǎn)單,題主只要先大概的了解即可,希望能幫助你入門,推薦你去一個(gè)不錯(cuò)的自學(xué)網(wǎng)站?秒秒學(xué)上過(guò)一遍基礎(chǔ)知識(shí)。
分享文章:關(guān)于javascript正則表達(dá)式的信息
URL鏈接:http://chinadenli.net/article32/dsidipc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、做網(wǎng)站、網(wǎng)站改版、App設(shè)計(jì)、商城網(wǎng)站、動(dòng)態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)