這篇文章給大家分享的是有關(guān)正則表達(dá)式有什么作用的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
公司主營(yíng)業(yè)務(wù):做網(wǎng)站、網(wǎng)站制作、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出類烏齊免費(fèi)做網(wǎng)站回饋大家。
例子
//這是一個(gè)用來匹配URL的正則表達(dá)式,分組獲取不同部分的信息 var parse_url = /^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/; var url = "http://www.ora.com:80/goodparts?q#fragment"; var result = parse_url.exec(url); var names = ["url", "scheme", "slash", "host", "port", "path", "query", "hash"];var i; for (i = 0; i < names.length; i++) { document.writeln(names[i] + ": " + result[i] + "<br/>"); } //這段代碼的輸出結(jié)果如下: url: http://www.ora.com:80/goodparts?q#fragment scheme: http slash: // host: www.ora.com port: 80 path: goodparts query: q hash: fragment
解析
下面讓我們分解parse_url的各個(gè)部分,看看它是如何工作的:
^
^字符表示此字符串的開始,它是一個(gè)錨,指引exec不要跳過那些不像URL的前綴,只匹配那些從開頭就像URL一樣的字符串。
(?:([A-Za-z]+):)?
這個(gè)因子匹配一個(gè)協(xié)議名,但僅當(dāng)它后面跟隨一個(gè) :(冒號(hào))的時(shí)候才匹配。(?: . . .)表示一個(gè)非捕獲型分組(noncapturing group)。后綴 ? 表示這個(gè)分組是可選的,它表示重復(fù)0次或1次。( . . .)表示一個(gè)捕獲型分組。一個(gè)捕獲型分組會(huì)復(fù)制它所匹配的文本,并把其放到result數(shù)組里。每個(gè)捕獲型分組都會(huì)被指定一個(gè)編號(hào)。第一個(gè)捕獲型分組的編號(hào)是1,所以該分組所匹配的文本副本會(huì)出現(xiàn)在result[1]中。 [ . . .]表示一個(gè)字符類。A-Za-z這個(gè)字符類包含26個(gè)大寫字母和26個(gè)小寫字母。連接字符 - 表示范圍從A-Z。后綴 + 表示這個(gè)字符類會(huì)被匹配一次或多次。這個(gè)組后面跟著字符 : ,它會(huì)按字面進(jìn)行匹配。
(\/{0,3})
這個(gè)因子是捕獲型分組2,匹配//。\ /表示應(yīng),該匹配 / (斜杠)。它用 \ (反斜杠)來進(jìn)行轉(zhuǎn)義,這樣它就不會(huì)被錯(cuò)誤地解釋為這個(gè)正則表達(dá)式的結(jié)束符。后綴 {0,3} 表示 / 會(huì)匹配0~3次。
([0-9.\-A-Za-z]+)
這個(gè)因子是捕獲型分組3。它會(huì)匹配一個(gè)主機(jī)名,由一個(gè)或多個(gè)數(shù)字、字母以及 . 或 - 字符組成。- 會(huì)被轉(zhuǎn)義為 \- 以防止與表示范圍的連字符相混淆。
(?::(\d+))?
這個(gè)可選的因子匹配端口號(hào),它是由一個(gè)前置 : 加上一個(gè)或多個(gè)數(shù)字而組成的序列。\d表示一個(gè)數(shù)字字符。一個(gè)或多個(gè)數(shù)字組成的數(shù)字串會(huì)被捕獲型分組4捕獲。
(?:\/([^?#]*))?
這個(gè)因子也是可選的分組,匹配路徑。該分組以一個(gè) / 開始。之后的字符類[^?#]以一個(gè)^開始,它表示這個(gè)類包含除 ? 和 # 之外的所有字符。* 表示這個(gè)字符類會(huì)被匹配0次或多次。
注意我在這里的處理是不嚴(yán)謹(jǐn)?shù)?。這個(gè)類匹配除 ? 和 # 之外的所有字符,其中包括了行結(jié)束符、控制字符、以及其他大量不應(yīng)在此被匹配的字符。大多數(shù)情況下,它會(huì)按照我們的預(yù)期去做,但某些惡意文本可能會(huì)有滲漏進(jìn)來的風(fēng)險(xiǎn)。不嚴(yán)謹(jǐn)?shù)恼齽t表示式是一個(gè)常見的安全漏洞發(fā)源地。寫不嚴(yán)謹(jǐn)?shù)恼齽t表達(dá)式比寫嚴(yán)謹(jǐn)?shù)恼齽t表示式要容易的多。
(?:\?([^#]*))?
這個(gè)因子是一個(gè)以一個(gè) ? 開始的可選分組。它包含捕獲型分組6,這個(gè)分組包含0個(gè)或多個(gè)非#字符。
(?:#(.*))?
這個(gè)因子是以 # 開始的可選分組。. 會(huì)匹配除行結(jié)束符以外的所有字符。
$
$表示這個(gè)字符串的結(jié)束。它保證在這個(gè)URL的尾部沒有其他更多的內(nèi)容了。
感謝各位的閱讀!關(guān)于“正則表達(dá)式有什么作用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
網(wǎng)頁名稱:正則表達(dá)式有什么作用
文章位置:http://aaarwkj.com/article6/ihhsog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、商城網(wǎng)站、企業(yè)網(wǎng)站制作、網(wǎng)站營(yíng)銷、微信小程序、網(wǎng)站設(shè)計(jì)公司
聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)