成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JavaScript正則表達(dá)式RegExp

SexySix / 1422人閱讀

摘要:的正則表達(dá)式體系是參照建立的。字面量形式構(gòu)造函數(shù)形式以上都是創(chuàng)建了一個(gè)內(nèi)容為的正則表達(dá)式,其表示對(duì)一個(gè)手機(jī)號(hào)碼的校驗(yàn)。按照給定的正則表達(dá)式進(jìn)行替換,返回替換后的字符串。

正則表達(dá)式,也稱規(guī)則表達(dá)式,經(jīng)常使用其來(lái)完成對(duì)字符串的校驗(yàn)和過(guò)濾。由于正則表達(dá)式的靈活性、邏輯性和功能性都非常強(qiáng)大,而且 可以利用很簡(jiǎn)單的方式完成對(duì)復(fù)雜字符串的控制,所以很多程序語(yǔ)言都支持正則表達(dá)式。在JavaScript中正則表示也非常強(qiáng)大和實(shí)用。

基本形式

正則表達(dá)式(regular expression)是一種表達(dá)文本模式(即字符串結(jié)構(gòu))的方法,有點(diǎn)像字符串的模板,常常用作按照“給定模式”匹配文本的工具。比如,正則表達(dá)式給出一個(gè)Email地址的模式,然后用它來(lái)確定一個(gè)字符串是否為Email地址。JavaScript的正則表達(dá)式體系是參照Perl 5建立的。

新建正則表達(dá)式有兩種方法。一種是使用字面量,以斜杠表示開(kāi)始和結(jié)束。

// 字面量形式
var telRegex1 = /^1[3|5|7|8]d{9}$/;
// 構(gòu)造函數(shù)形式
var telRegex2 = new RegExp("^1[3|5|7|8]d{9}$");

以上都是創(chuàng)建了一個(gè)內(nèi)容為^1[3|5|7|8]d{9}$的正則表達(dá)式,其表示對(duì)一個(gè)手機(jī)號(hào)碼的校驗(yàn)。必須以1開(kāi)始,第二位為3/5/7/8,之后為9位數(shù)字。

這兩種寫(xiě)法——字面量和構(gòu)造函數(shù)——在運(yùn)行時(shí)有一個(gè)細(xì)微的區(qū)別。采用字面量的寫(xiě)法,正則對(duì)象在代碼載入時(shí)(即編譯時(shí))生成;采用構(gòu)造函數(shù)的方法,正則對(duì)象在代碼運(yùn)行時(shí)生成??紤]到書(shū)寫(xiě)的便利和直觀,實(shí)際應(yīng)用中,基本上都采用字面量的寫(xiě)法。

有一點(diǎn)需要注意,使用構(gòu)造函數(shù)創(chuàng)建正則表達(dá)式時(shí),傳入的參數(shù)是字符串形式的,在字符串內(nèi)部,本身也是一個(gè)轉(zhuǎn)義符,因此需要再使用一個(gè)來(lái)對(duì)其進(jìn)行正則表達(dá)式的轉(zhuǎn)義。上面第二個(gè)示例中,d才能代表任意數(shù)字。

關(guān)于正則表達(dá)式中,各種符號(hào)的含義,以及使用方法,請(qǐng)看后面的介紹:

元字符

一些常用的元字符如下:

. 匹配除換行符之外的任意字符

w 匹配字母或數(shù)字或下劃線或漢字

s 匹配任意的空白符

d 匹配數(shù)字

 匹配單詞的開(kāi)始或結(jié)束

^ 匹配字符串的開(kāi)始處

$ 匹配字符串的結(jié)束處。

* 匹配前面的子表達(dá)式任意次。

? 匹配前面子表達(dá)式0次或一次,等價(jià)于{0, 1}。

+ 匹配之前子表達(dá)式一次到多次,等價(jià)于{1, }。

{n} 匹配之前的子表達(dá)式n次。

{m,n} 匹配之前的子表達(dá)式最少m次,最多n次。

{n, } 匹配之前的子表達(dá)式至少n次。

[xyz] 字符集合,表示其中任意一個(gè)字符。表示范圍可用-鏈接,例如[a-z] 表示a-z之間的任意一個(gè)字母。還可以這樣書(shū)寫(xiě)[A-Za-z0-9]

[^xyz] 字符即可,表示非其中任意一個(gè)字符。表示范圍可用-鏈接,例如[^a-z] 表示非 a-z之間的任意一個(gè)字母。

| 表示或(or)關(guān)系,例如 com|cn,表示匹配com或者cn。

() 用于分組,其分組中的內(nèi)容可已通過(guò)$1-$9按順序獲取(字符串相關(guān)方法中),之后的正則中也可以通過(guò)1-9進(jìn)行引用(正則表達(dá)式內(nèi)部)。(分組0表示整個(gè)正則匹配內(nèi)容或整個(gè)正則表達(dá)式)

在正則表達(dá)式中,以上這些以及一些未列出的元字符都是有自身含義的,如果我們需要匹配這些元字符本身,可以使用對(duì)其進(jìn)行轉(zhuǎn)義即可。

更多元字符可以查看:正則表達(dá)式

屬性 修飾符

ignoreCase:返回一個(gè)布爾值,表示是否設(shè)置了i修飾符,該屬性只讀。

global:返回一個(gè)布爾值,表示是否設(shè)置了g修飾符,該屬性只讀。

multiline:返回一個(gè)布爾值,表示是否設(shè)置了m修飾符,該屬性只讀。

stickyES6返回一個(gè)布爾值,表示是否設(shè)置了y修飾符,只讀。

var r = /abc/igm;

r.ignoreCase; // true
r.global;  // true
r.multiline;  // true
匹配時(shí)屬性

lastIndex:返回下一次開(kāi)始搜索的位置。該屬性可讀寫(xiě),但是只在設(shè)置了g修飾符時(shí)有意義。

sourceES5返回正則表達(dá)式的字符串形式(不包括反斜杠),該屬性只讀。

flagsES6返回正則表達(dá)式中的修飾符。

var r = /abc/igm;

r.lastIndex; // 0
r.source; // "abc"
r.flags; //"igm"
方法 test()

正則對(duì)象的test對(duì)象接收一個(gè)字符串,表示測(cè)試字符串,返回一個(gè)布爾值,表示是此字符串是否滿足匹配條件。

telRegex1.test("13612341234"); // true
telRegex2.test("13612341234"); // true
telRegex1.test("136123412"); // false

如果正則表達(dá)式帶有g修飾符,則每一次test方法都從上一次結(jié)束的位置開(kāi)始向后匹配。同時(shí),可以通過(guò)正則對(duì)象的lastIndex屬性指定開(kāi)始搜索的位置。

var xReg = /x/g;
var str = "xyz_x1_y1_x3";

xReg.lastIndex; // 0
xReg.test(str); // true

xReg.lastIndex; // 1
xReg.test(str); // true
xReg.lastIndex; // 5

// 指定位置開(kāi)始 指定下次匹配從最后一位開(kāi)始,就匹配不到了
xReg.lastIndex = 11; // 11
xReg.test(str); // false

xReg.lastIndex; // 0
var indexReg = /^(?:http|https).+/jwebui/pages/themes/(w+)/1.jspx(?S+)?$/i ;

上面是一個(gè)F8中檢查是否為首頁(yè)的正則表達(dá)式。

最開(kāi)始的^ 和最后的$分別表示匹配的開(kāi)始和結(jié)束。

(?:http|https)表示兩者之一,這么寫(xiě)是非獲取的組匹配,()不會(huì)被分組存儲(chǔ)。也可以寫(xiě)成(http|https) 但是后面的1就需要替換成2了,因?yàn)檫@么寫(xiě)時(shí)此處形成了第一個(gè)分組。

.+ 就是任意字符至少出現(xiàn)一次。

/jwebui/pages/themes/ 就是匹配字符串"/jwebui/pages/themes/"。

(w+) 作為第一個(gè)分組,表示任意字母或數(shù)字或下劃線或漢字至少出現(xiàn)一次。

1表示對(duì)第一個(gè)分組的引用,再重復(fù)第一分組的內(nèi)容 。

.jspx 表示.jspx

(?S+)? 表示(?S+) 匹配的內(nèi)容出現(xiàn)0次或一次。其中:

? 表示 。

S+ 表示任意可見(jiàn)字符出現(xiàn)至少一次。
`

exec()

正則對(duì)象的exec方法,可以返回匹配結(jié)果。如果發(fā)現(xiàn)匹配,就返回一個(gè)數(shù)組,成員是每一個(gè)匹配成功的子字符串,否則返回null。

如果正則表示式包含圓括號(hào)(即含有“組匹配”),則返回的數(shù)組會(huì)包括多個(gè)成員。第一個(gè)成員是整個(gè)匹配成功的結(jié)果,后面的成員就是圓括號(hào)對(duì)應(yīng)的匹配成功的組。也就是說(shuō),第二個(gè)成員對(duì)應(yīng)第一個(gè)括號(hào),第三個(gè)成員對(duì)應(yīng)第二個(gè)括號(hào),以此類推。整個(gè)數(shù)組的length屬性等于組匹配的數(shù)量再加1。

var ipReg = /(d{1,3}.){3}(d{1,3})/;
var ipStr = "My ip is "192.168.118.47" , please tell me yours";

ipReg.exec(ipStr); // ["192.168.118.47", "118.", "47"]

上面第一段代碼表示一個(gè)簡(jiǎn)單的IP檢驗(yàn),數(shù)字的1-3位之后緊跟一個(gè).,接著這個(gè)整體要出現(xiàn)3次,最后再有一段數(shù)字的1-3位。結(jié)果數(shù)組中,第一個(gè)值表示匹配到的結(jié)果,之后的表示正則分組匹配到的內(nèi)容。

如果正則表達(dá)式加上g修飾符,則可以使用多次exec方法,下一次搜索的位置從上一次匹配成功結(jié)束的位置開(kāi)始。同時(shí)還可以指定lastIndex,使之下次從指定位置開(kāi)始(可見(jiàn)之前的test示例)。

var ipLastReg = /d+(?=;)/g;

var ipsStr = "192.168.118.47;192.168.118.46;192.168.118.48;";

ipLastReg.exec(ipsStr); // ["47"]
ipLastReg.exec(ipsStr); // ["46"]
ipLastReg.exec(ipsStr); // ["48"]

上面代碼中正則中的(?=;)表示先行斷言,表示只匹配在;前面d+。

如果只是為了得到是否匹配,請(qǐng)使用 RegExp.test()方法或字符串實(shí)例的.search() 替代,效率更高。

字符串相關(guān)方法

之所以稱之為字符串相關(guān)方法是因?yàn)槠涫窃谧址险{(diào)用的(雖然ES6開(kāi)始,內(nèi)部調(diào)用的是正則上的方法,但還是在字符串上提供的入口)。

match():返回一個(gè)數(shù)組,成員是所有匹配的子字符串。

search():按照給定的正則表達(dá)式進(jìn)行搜索,返回一個(gè)整數(shù),表示匹配開(kāi)始的位置。

replace():按照給定的正則表達(dá)式進(jìn)行替換,返回替換后的字符串。

split():按照給定規(guī)則進(jìn)行字符串分割,返回一個(gè)數(shù)組,包含分割后的各個(gè)成員。

match()

match方法對(duì)字符串進(jìn)行正則匹配,返回匹配結(jié)果。此方法方法與正則對(duì)象的exec方法非常類似:匹配成功返回一個(gè)數(shù)組,匹配失敗返回null。如果正則表達(dá)式帶有g修飾符,則該方法與正則對(duì)象的exec方法行為不同,會(huì)一次性返回所有匹配成功的結(jié)果。

var ipLastReg = /d+(?=;)/g;
var ipsStr = "192.168.118.47;192.168.118.46;192.168.118.48;";

ipsStr.match(ipLastReg); // ["47", "46", "48"]

上面的正則是匹配IP中的最后一位,其中使用了(?=;)意為先行斷言,表示只匹配在;之前的內(nèi)容,但是不包括;。關(guān)于更多先行斷言,請(qǐng)看下文。

search()

search方法,返回第一個(gè)滿足條件的匹配結(jié)果(可直接使用字符串,不一定是正則對(duì)象)在整個(gè)字符串中的位置。如果沒(méi)有任何匹配,則返回-1

var nowDateStr = "2016-11-1";
var testReg = /-/g;

nowDateStr.search(testReg); // 4
// 再次查找還是4
nowDateStr.search(testReg); // 4

//  檢查lastIndex 并設(shè)置 
testReg.lastIndex; // 0
testReg.lastIndex = 6;
nowDateStr.search(testReg); // 4  結(jié)果仍為4

search方法總是從字符串的開(kāi)始位置查找,與正則表達(dá)式的g修飾符和lastIndex屬性無(wú)關(guān)。

replace()

replace方法可以替換匹配的值,返回替換后的新字符串。它接受兩個(gè)參數(shù),第一個(gè)是搜索模式(可直接使用字符串,不一定是正則對(duì)象),第二個(gè)是替換的內(nèi)容(可使用字符串或一個(gè)函數(shù))。搜索模式如果不加g修飾符,就替換第一個(gè)匹配成功的值,否則替換所有匹配成功的值。

其中replace方法的第二個(gè)參數(shù)可以使用美元符號(hào)$,用來(lái)指代所替換的內(nèi)容,具體如下所示:

$& 指代匹配的子字符串。

$` 指代匹配結(jié)果前面的文本。

$" 指代匹配結(jié)果后面的文本。

$n 指代匹配成功的第n組內(nèi)容,n是從1開(kāi)始的自然數(shù)。

$$ 指代美元符號(hào)$。

var re = /-/g; 
var str = "2016-11-01";
var newstr = str.replace(re,".");
console.log(newstr);  // "2016.11.01"

"hello world".replace(/(w+)s(w+)/, "$2 $1");
// "world hello"

"abc".replace("b", "[$`-$&-$"]");
// "a[a-b-c]c"

第二個(gè)參數(shù)為函數(shù):

function toCamelStyle(str) {
    // 匹配-以及之后的一個(gè)字符,其中這個(gè)字符在一個(gè)分組內(nèi)
    var camelRegExp = /-([a-z])/ig;

    return str.replace(camelRegExp, function(all, letter) {
        // all為匹配到的內(nèi)容,letter為組匹配        
        return letter.toUpperCase();
    });
}

toCamelStyle("margin-left"); // "marginLeft"
toCamelStyle("aa-bb-cccc"); // "aaBbCccc"

以上代碼展示通過(guò)正則將aa-bb-cccc這樣的字符串轉(zhuǎn)化為aaBbCccc 這種形式。replace回調(diào)函數(shù)接收兩個(gè)參數(shù),第一個(gè)為匹配到的內(nèi)容,第二個(gè)為匹配到的分組,有多少組就可以傳多少個(gè)參數(shù),在此之后還可以有兩個(gè)參數(shù),一個(gè)為匹配到內(nèi)容在原字符串的位置,另一個(gè)是原字符串。

split()

split方法按照正則規(guī)則分割字符串,返回一個(gè)由分割后的各個(gè)部分組成的數(shù)組。該方法接受兩個(gè)參數(shù),第一個(gè)參數(shù)是分隔規(guī)則(可直接使用字符串,不一定是正則對(duì)象),第二個(gè)參數(shù)是返回?cái)?shù)組的最大成員數(shù)。

"2016-11-01".split("-"); // ["2016", "11", "01"]
"2016-11-01".split(/-/); // ["2016", "11", "01"]
貪婪模式和懶惰模式

當(dāng)正則表達(dá)式中包含能接受重復(fù)的限定符時(shí),通常的行為是(在使整個(gè)表達(dá)式能得到匹配的前提下)匹配盡可能多的字符,稱之為貪婪模式

例如:

var s = "aaa";
s.match(/a+/); // ["aaa"]

有時(shí),我們更需要懶惰匹配,也就是匹配盡可能少的字符。前面給出的限定符都可以被轉(zhuǎn)化為懶惰匹配模式,只要在它后面加上一個(gè)問(wèn)號(hào)?。這樣.*?就意味著匹配任意數(shù)量的重復(fù),但是在能使整個(gè)匹配成功的前提下使用最少的重復(fù)。

var s = "aaa";
s.match(/a+?/); // ["a"]

以下是一些說(shuō)明

*? 重復(fù)任意次,但盡可能少重復(fù)

+? 重復(fù)1次或更多次,但盡可能少重復(fù)

?? 重復(fù)0次或1次,但盡可能少重復(fù)

{n,m}? 重復(fù)n到m次,但盡可能少重復(fù)

{n,}? 重復(fù)n次以上,但盡可能少重復(fù)

也就是說(shuō)默認(rèn)情況下,都是貪婪模式,加上一個(gè)?時(shí)就轉(zhuǎn)化為了懶惰模式,也稱非貪婪模式。

組匹配

通常一個(gè)()中的內(nèi)容就構(gòu)成了一個(gè)分組,此分組內(nèi)容將被存儲(chǔ),可在之后的正則表達(dá)式(使用1-9)和相關(guān)方法中(使用 $1-$9)引用,前面已經(jīng)介紹過(guò)了,就不再說(shuō)了。

關(guān)于組匹配,還有以下幾種情況:

非捕獲組

(?:x) 稱為非捕獲組(Non-capturing group),表示不返回該組匹配的內(nèi)容,即匹配的結(jié)果中不計(jì)入這個(gè)括號(hào)。

// 正常匹配
var url = /(http|ftp)://([^/
]+)(/[^
]*)?/;

url.exec("http://google.com/");
// ["http://google.com/", "http", "google.com", "/"]

// 非捕獲組匹配
var url = /(?:http|ftp)://([^/
]+)(/[^
]*)?/;

url.exec("http://google.com/");
// ["http://google.com/", "google.com", "/"]

之后先行斷言先行否定斷言也都是非捕獲組

先行斷言

x(?=y)稱為先行斷言(Positive look-ahead),x只有在y前面才匹配,y不會(huì)被計(jì)入返回結(jié)果。

比如之前匹配ip的例子:

var ipLastReg = /d+(?=;)/g;
var ipsStr = "192.168.118.47;192.168.118.46;192.168.118.48;";

ipsStr.match(ipLastReg); // ["47", "46", "48"]

上面正則對(duì)象中(?=;)就表示只匹配在;之前的內(nèi)容,但是不包括;

先行否定斷言

x(?!y)稱為先行否定斷言(Negative look-ahead),x只有不在y前面才匹配,y不會(huì)被計(jì)入返回結(jié)果。

var xreg = /d+(?!%)/g ;
xreg.exec("100% is 1"); // ["10"]
xreg.exec("100% is 1"); // ["1"]
/d+?(?!%)/.exec("100% is 1"); // ["1"]

上面代碼表示匹配不在%前的數(shù)字,xreg中直接書(shū)寫(xiě)的d+ 表示貪婪模式,因此第一次匹配到的是10,第二次才會(huì)匹配到后面的1,因?yàn)樽鳛閿?shù)字10本身也不在%前面,正則不會(huì)將100當(dāng)成一個(gè)整體(注意:這里需要定義一個(gè)正則對(duì)象來(lái)調(diào)用,直接以字面量形式的正則調(diào)用時(shí),每次調(diào)用都是一個(gè)新對(duì)象,結(jié)果始終是10)。

為了一次匹配到最后的1,我們?cè)?b>d+之后加一個(gè)?將其轉(zhuǎn)為非貪婪模式即可。

為了一次匹配到前面100中的1,我們?cè)?b>d+之后加一個(gè)?將其轉(zhuǎn)為非貪婪模式即可。

ES6之前,JavaScript中不支持后行斷言否定后行斷言,ES6中添加了對(duì)此的支持,請(qǐng)看之后的ES擴(kuò)展部分。

ES6擴(kuò)展 構(gòu)造函數(shù)

RegExp構(gòu)造函數(shù)的參數(shù)有兩種情況。

第一種情況是,參數(shù)是字符串,這時(shí)第二個(gè)參數(shù)表示正則表達(dá)式的修飾符(flag)。

第二種情況是,參數(shù)是一個(gè)正則表示式,此時(shí)不能有第二個(gè)參數(shù),會(huì)返回一個(gè)原有正則表達(dá)式的拷貝。

ES6 針對(duì)第二種情況,允許傳入第二個(gè)參數(shù),用于設(shè)置第一個(gè)參數(shù)正則表達(dá)式的修飾符。

var regex = new RegExp(/xyz/, "i"); // ES6之前 語(yǔ)法錯(cuò)誤

new RegExp(/abc/ig, "i"); // ES6中結(jié)果為: /abc/i  
字符串的正則方法

字符串對(duì)象共有4個(gè)方法,可以使用正則表達(dá)式:match()replace()、search()split()。

ES6將這4個(gè)方法,在語(yǔ)言內(nèi)部全部調(diào)用RegExp的實(shí)例方法,從而做到所有與正則相關(guān)的方法,全都定義在RegExp對(duì)象上。

修飾符

ES6對(duì)正則表達(dá)式添加了u修飾符,含義為“Unicode模式”,用來(lái)正確處理大于uFFFF的Unicode字符。也就是說(shuō),會(huì)正確處理四個(gè)字節(jié)的UTF-16編碼。

ES6還為正則表達(dá)式添加了y修飾符,叫做“粘連”(sticky)修飾符。

y修飾符的作用與g修飾符類似,也是全局匹配,后一次匹配都從上一次匹配成功的下一個(gè)位置開(kāi)始。不同之處在于,g修飾符只要剩余位置中存在匹配就可,而y修飾符確保匹配必須從剩余的第一個(gè)位置開(kāi)始,這也就是“粘連”的涵義。

var s = "aaa_aa_a";
var r1 = /a+/g;
var r2 = /a+/y;

// 第一次都能正確匹配
r1.exec(s); // ["aaa"]
r2.exec(s); // ["aaa"]

// 第二次結(jié)果就不一致了
r1.exec(s); // ["aa"]
r2.exec(s); // null

個(gè)人理解,y是類似于在每次匹配時(shí)隱式地添加了^,表示開(kāi)始位置。

屬性

ES5中,正則對(duì)象存在source屬性,用于返回正則表達(dá)式本身。

ES6中,又添加了flags屬性,用于返回正則對(duì)象的所有修飾符。

后行斷言

后行斷言于先行斷言相反。例如/(?<=y)x/ 表示匹配x,但是要求x必須在y后面。

同理 后行否定斷言則為:/(? 表示匹配x,但是要求x不能在y后面。

需要注意的是,存在后行斷言時(shí),正則執(zhí)行順序發(fā)生了改變,會(huì)先匹配后行斷言的這部分,再匹配其他的的,順序變成了從右向左。因此一些匹配操作的結(jié)果可能大不一致,而且正則中的1-9的引用順序也會(huì)發(fā)生變化。

參考鏈接

ES6入門(mén) - 正則表達(dá)式

JavaScript RegExp

正則表達(dá)式30分鐘入門(mén)教程

原文發(fā)表在我的博客JavaScript正則表達(dá)式RegExp,歡迎訪問(wèn)!

錯(cuò)誤修正

先行否定斷言中

為了一次匹配到最后的1,我們?cè)?b>d+之后加一個(gè)?將其轉(zhuǎn)為非貪婪模式即可。

為了一次匹配到前面100中的1,我們?cè)?b>d+之后加一個(gè)?將其轉(zhuǎn)為非貪婪模式即可。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/82169.html

相關(guān)文章

  • JS中的正則達(dá)式

    摘要:構(gòu)造函數(shù)可以有兩個(gè)字符串參數(shù),第一個(gè)參數(shù)包含正則表達(dá)式的主體部分。只讀的布爾值,說(shuō)明這個(gè)正則表達(dá)式是否帶有修飾符。中正則的擴(kuò)展構(gòu)造函數(shù)在中,只能接受字符串作為參數(shù),允許其直接接受正則表達(dá)式作為參數(shù)。 上文傳送門(mén):初探正則表達(dá)式 正則表達(dá)式是一個(gè)描述字符模式的對(duì)象,JavaScript 的 RegExp 類表示正則表達(dá)式,String 和 RegExp 都定義了方法,后者使用正則表達(dá)式進(jìn)...

    Soarkey 評(píng)論0 收藏0
  • JavaScript正則達(dá)式的匹配模式

    摘要:選擇分組和引用正則表達(dá)式的語(yǔ)法還包括指定選擇項(xiàng)子表達(dá)式分組和引用前一子表達(dá)式的特殊字符。帶圓括號(hào)的表達(dá)式的另一個(gè)用途是允許在同一正則表達(dá)式的后部引用前面的子表達(dá)式。 正則表達(dá)式(regular expression)是一個(gè)描述字符模式的對(duì)象。JavaScript的 RegExp類 表示正則表達(dá)式,String和RegExp都定義了方法,后者使用正則表達(dá)式進(jìn) 行強(qiáng)大的模式匹配和文本檢索與...

    wqj97 評(píng)論0 收藏0
  • JavaScript 闖關(guān)記》之正則達(dá)式

    摘要:正則表達(dá)式的字符串表示,按照字面量形式而非傳入構(gòu)造函數(shù)中的字符串模式返回。其中,表示匹配項(xiàng)在字符串中的位置,而表示應(yīng)用正則表達(dá)式的字符串。下面列出了正則表達(dá)式所不支持的特性。關(guān)卡按要求完成下列常用的正則表達(dá)式。 由于本課程的核心是 JavaScript,所以本文著重講解了「正則表達(dá)式」在 JavaScript 中的用法,并未深入「正則表達(dá)式」的具體細(xì)節(jié)。如果您尚不了解「正則表達(dá)式」,強(qiáng)...

    TalkingData 評(píng)論0 收藏0
  • JavaScript標(biāo)準(zhǔn)庫(kù)系列——RegExp對(duì)象(三)

    摘要:目錄導(dǎo)語(yǔ)理解正則表達(dá)式模式的規(guī)則字符串和正則實(shí)例的屬性和方法檢索實(shí)例小結(jié)導(dǎo)語(yǔ)正則表達(dá)式是處理字符串的一門(mén)藝術(shù)手法,應(yīng)用場(chǎng)景經(jīng)常出現(xiàn)在表單驗(yàn)證部分高級(jí)程序設(shè)計(jì)一書(shū)開(kāi)篇提到,這門(mén)語(yǔ)言最原始的應(yīng)用就是處理輸入驗(yàn)證操作,所以正則表達(dá)式從誕生那一刻就 目錄 導(dǎo)語(yǔ) 1.理解正則表達(dá)式 2.模式的規(guī)則 3.字符串和正則實(shí)例的屬性和方法 4.檢索實(shí)例 5. 小結(jié) 導(dǎo)語(yǔ) 正則表達(dá)式是處理字符串的一門(mén)藝...

    邱勇 評(píng)論0 收藏0
  • JavaScript面向?qū)ο缶幊獭?em>RegExp類型

    摘要:由于某些字符類非常常用,的正則表達(dá)式中,使用特殊轉(zhuǎn)義字符表示他們。多行搜索代碼示例對(duì)象創(chuàng)建對(duì)象可以通過(guò)引用類型創(chuàng)建正則表達(dá)式對(duì)象參數(shù)參數(shù)被稱為模式,可以使任何簡(jiǎn)單或復(fù)雜的正則表達(dá)式,包含字符類限定符分組向前查找以及反向引用等。 概述 正則表達(dá)式是什么 正則表達(dá)式(RegularExpression):由一些普通字符和特殊字符組成的,用以描述一種特定的字符規(guī)則的表達(dá)式。正則表達(dá)式常用在一...

    Magicer 評(píng)論0 收藏0
  • JavaScript中的正則達(dá)式

    Javascript的正則表達(dá)式是前端中比較重要的部分,正則表達(dá)式主要用于字符串處理,表單驗(yàn)證等場(chǎng)合,實(shí)用高效,文章主要對(duì)JavaScript中的正則的學(xué)習(xí)與總結(jié) 正則表達(dá)式的定義 正則表達(dá)式:是一個(gè)描述字符模式的對(duì)象,JavaScrip中正則表達(dá)式用RegExp對(duì)象表示,可以使用RegExp構(gòu)造函數(shù)來(lái)創(chuàng)建正則對(duì)象 正則表達(dá)式的創(chuàng)建 1.字面量創(chuàng)建 var reg = /[a-z]/; 2.構(gòu)...

    _Zhao 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<