首頁 web前端 js教程 JavaScript中的正規表示式簡明總結_基礎知識

JavaScript中的正規表示式簡明總結_基礎知識

May 16, 2016 pm 04:53 PM
javascript regexp 正規表示式

一、定義正規表示式的方法

定義正規表示式的方法有兩種:建構函式定義和正規表示式直接量定義。例如:

複製程式碼 程式碼如下:
var reg1 = new RegExp('d{5, 11} '); // 透過建構子定義
var reg2 = /d{5, 12}/; // 透過直接量定義

正規表達式直接量字元
       o:NUL字元(u0000)
       t:製表符(u0009)
     t:製表符(u0009)       f:換頁符(u000C)
       r:回車符(u000D)
     r:回車符(u000D)
   
       uxxxx:由十六進位數xxxx指定的Unicode字符,例如u0009等價於
       cX:控製字元^X,例如,cJ等價於換錨符n
正規表示🎜>       ^:符合字串的開頭,在多重擷取字串的結尾,在多行檢索中,符合一行的結尾
       $:將字串的結尾,在多重擷取中,符合一行字的結尾
     邊界,簡言之,就是位於字元w和W之間的位置,或位於字元w和字串的開頭或結尾之間的位置([b]匹配的是退格符)
       B:符合非單字邊界的位置
       (?=p):零寬正向先行斷言,要求接下來的字元都與p匹配,但不能包括那些匹配p的字元
       (?!p):零負負先行斷言,要求接下來的字串不與p匹配
正規表示式的字元類別
       [...]:方括號內的任意字元
       [^...]:不在方字元
       [^...]:不在方字元括號內的任意字元
       .:以換行符和其他Unicode行終止符以外的任意字元
       w:任何ASCII字元組成的單字,等價於[a-zA-Z0-9]
       W:任何不是ASCII字元組成的單字,等價於[^a-zA-Z0-9]
       s:任何Unicode空格符
       s:任何Unicode空格符
   不同
       d:任何ASCII數字,等價於[0-9]
       D:除了ASCII數字之外的任何字符,等價於[^0-9]  直接量(特例)
正規表示式的重複字元語法
       {n, m}:符合前一項至少n次,但不能超過m次
       {n, }:符合前一項n次或更多次
       {n}:對前一項n次
       ?:對前一項0次或1次,也就是說前一項是可選擇的,等價於{0, 1}
       :匹配前一項1次或多次,等價於{1, }
       *:匹配前一項0次或多次,等價於{0, }
正則表達式的選擇、分組和引用字符
       |:選擇,匹配的是該符號左邊的子表達式或右邊的子表達式
       (…):組合,將幾個項組合為一個單元,這個項單元可透過「*」、「 」、「?」和「|」等符號加以修飾,而且可以記住和這個組相匹配的字符串以供此後的任何使用
       (?: …):只組合,把項組合到一個單元,但是不記憶與改組相匹配的字符
       n:和第n個分組第一次匹配的字符相匹配,組是圓括號中的子表達式(也有可能是嵌套的),群組索引是從左到右的左括號數,「(?:」形式的分組不編碼
正規表示式修飾符
       i:執行不區分大小寫的符合
g:執行一個全域匹配,簡言之,即找到所有的匹配,而不是在找到第一個之後就停止
       m:多行匹配模式,^匹配一行的開頭和字符串的開頭,$匹配行的結尾和字串的結尾
用於模式匹配的String方法
       search():它的參數是一個正規表示式,並傳回第一個與之相符的子字串的起始位置,如果沒有符合的子字串就回傳-1。如果search()的參數不是正規表示式,則首先會透過RegExp建構子將它轉換為正規表示式,search()不支援全域檢索,因為它忽略修飾符g。如:

複製程式碼 程式碼如下:

var s = "JavaScript".search(/script/i); // s = 4

 

       replace():它用來執行檢索與取代。接收兩個參數,第一個是正規表示式,第二個是要進行替換的字串。正規表示式如果設定的修飾符g,則進行全域替換,否則只替換匹配的第一個子字串。如果第一個參數不是正規表示式,則直接搜尋該字串,而不是將其轉換為正規表示式。如:

複製程式碼 程式碼如下:
var s = "JavaScript".replace(/java/gi , "Script"); // s =  Script Script

 

       match():它的參數是正規表示式,若不是則透過RegExp轉換,傳回的則是由符合結果組成的陣列。如果設定了修飾符g則進行全域匹配。如:

複製代碼 代碼如下:
var d = '55 ff 33 代碼如下:

var d = '55 ff 33 77 tt'hhmatch (/d /g); // d = ["55", "33", "77"]

 

       split():這個方法用以將呼叫它的字串分割為一個子字串組成的陣列,所使用的分隔符號是split()的參數,它的參數也可以讓一個正規表示式。如:複製程式碼
程式碼如下:

var d = '123,31,453,645'.split(' '); // d = ["123", "31", "453", "645"]
var d = '21 , 123,  44,  64,  67,  3'.split(/s*, s*/); // d = ["21", "123", "44", "64", "67", "3"]


二、RegExp物件

       每個RegExp物件都有5個屬性。屬性source是一個唯讀字串,包含正規表示式的文字。屬性global是只讀布林值,用以說明這個正規表示式是否帶有修飾符g。屬性ignoreCase是一個只讀布林值,用以說明這個正規表示式是否帶有修飾符i。屬性multiline是一個只讀布林值,用以說明這個正規表示式是否帶有修飾符m。屬性lastIndex是一個可讀可寫的整數,如果匹配模式帶有g修飾符,這個屬性會儲存整個字串中下一次檢索的開始位置。

       RegExp物件有兩種方法。 exec()的參數是一個字串,它的函數與match()相似,exec()方法對一個指定的字串執行一個正規表示式,也就是在一個字串中執行匹配檢索。如果沒有找到任何匹配就返回null,找到了匹配就返回一個數組,這個數組的第一個元素包含的是與正則表達式相匹配的字串,餘下的元素是與圓括號內的子表達式相符合的子字串,不論正規表示式是否有修飾符g,都會傳回一樣的數組。當呼叫exec()的正規表示式物件具有修飾符g時,它將把目前正規表示式物件的lastIndex屬性設為緊鄰匹配子字串的字元位置。當同一個正規表示式第二次呼叫exec()時,它將從lastIndex屬性所指示的字串處開始檢索,如果exec()沒有發現任何符合結果,它會將lastIndex重設為0。如:複製程式碼
程式碼如下:

var p = /Java/g;var text = "JavaScript is more fun than Java!"
var r;
while((r = p.exec(text)) != null) {
       console.log(r, 'lastIndex: ' p .lastIndex);
}


       另外一個方法是test(),它的參數是一個字串,用test()對某個字串進行檢查,如果包含正規表示式的一個符合結果,則傳回true否則回傳false。如:

程式碼如下:

var p = /java/i;
p. test('javascript'); // true
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1320
25
PHP教程
1269
29
C# 教程
1249
24
PHP正規表示式驗證:數位格式偵測 PHP正規表示式驗證:數位格式偵測 Mar 21, 2024 am 09:45 AM

PHP正規表示式驗證:數位格式偵測在編寫PHP程式時,經常需要對使用者輸入的資料進行驗證,其中一個常見的驗證是檢查資料是否符合指定的數字格式。在PHP中,可以使用正規表示式來實現這種驗證。本文將介紹如何使用PHP正規表示式來驗證數字格式,並提供具體的程式碼範例。首先,讓我們來看看常見的數字格式驗證要求:整數:只包含數字0-9,可以以正負號開頭,不包含小數點。浮點

如何在 Go 中使用正規表示式匹配時間戳記? 如何在 Go 中使用正規表示式匹配時間戳記? Jun 02, 2024 am 09:00 AM

在Go中,可以使用正規表示式比對時間戳記:編譯正規表示式字串,例如用於匹配ISO8601時間戳記的表達式:^\d{4}-\d{2}-\d{2}T \d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-][0-9]{2}:[0-9]{2})$ 。使用regexp.MatchString函數檢查字串是否與正規表示式相符。

如何使用正規表示式在 Golang 中驗證電子郵件地址? 如何使用正規表示式在 Golang 中驗證電子郵件地址? May 31, 2024 pm 01:04 PM

若要使用正規表示式在Golang中驗證電子郵件地址,請執行下列步驟:使用regexp.MustCompile建立正規表示式模式,以符合有效的電子郵件地址格式。使用MatchString函數檢查字串是否與模式相符。此模式涵蓋了大多數有效的電子郵件地址格式,包括:局部使用者名稱可以包含字母、數字和特殊字元:!.#$%&'*+/=?^_{|}~-`網域至少包含一個字母,後面可以跟字母、數字或連字符頂級域名(TLD)不能超過63個字符長

簡易JavaScript教學:取得HTTP狀態碼的方法 簡易JavaScript教學:取得HTTP狀態碼的方法 Jan 05, 2024 pm 06:08 PM

JavaScript教學:如何取得HTTP狀態碼,需要具體程式碼範例前言:在Web開發中,經常會涉及到與伺服器進行資料互動的場景。在與伺服器進行通訊時,我們經常需要取得傳回的HTTP狀態碼來判斷操作是否成功,並根據不同的狀態碼來進行對應的處理。本篇文章將教你如何使用JavaScript來取得HTTP狀態碼,並提供一些實用的程式碼範例。使用XMLHttpRequest

如何在 Go 中使用正規表示式驗證密碼? 如何在 Go 中使用正規表示式驗證密碼? Jun 02, 2024 pm 07:31 PM

Go中使用正規表示式驗證密碼的方法如下:定義正規表示式模式,符合最低密碼要求:至少8個字符,包含小寫字母、大寫字母、數字和特殊字符。使用regexp套件中的MustCompile函式編譯正規表示式模式。使用MatchString方法測試輸入字串是否與正規表示式模式相符。

如何在JavaScript中取得HTTP狀態碼的簡單方法 如何在JavaScript中取得HTTP狀態碼的簡單方法 Jan 05, 2024 pm 01:37 PM

JavaScript中的HTTP狀態碼取得方法簡介:在進行前端開發中,我們常常需要處理與後端介面的交互,而HTTP狀態碼就是其中非常重要的一部分。了解並取得HTTP狀態碼有助於我們更好地處理介面傳回的資料。本文將介紹使用JavaScript取得HTTP狀態碼的方法,並提供具體程式碼範例。一、什麼是HTTP狀態碼HTTP狀態碼是指當瀏覽器向伺服器發起請求時,服務

中文字元過濾:PHP正規表示式實踐 中文字元過濾:PHP正規表示式實踐 Mar 24, 2024 pm 04:48 PM

PHP是一種廣泛應用的程式語言,特別在Web開發領域中非常流行。在網路開發過程中,經常會遇到需要對使用者輸入的文字進行過濾、驗證等操作,其中字元過濾是一項十分重要的操作。本文將介紹如何使用PHP中的正規表示式來實現中文字元過濾的功能,並給出具體的程式碼範例。首先,我們要先明確一下中文字元的Unicode範圍是從u4e00到u9fa5,也就是所有的漢字都處於這個範圍

PHP正規表示式:精確匹配與排除模糊包含 PHP正規表示式:精確匹配與排除模糊包含 Feb 28, 2024 pm 01:03 PM

PHP正規表示式:精確匹配與排除模糊包含正規表示式是一種強大的文字匹配工具,能夠幫助程式設計師在處理文字時進行高效的搜尋、替換和篩選。在PHP中,正規表示式也被廣泛應用於字串處理和資料匹配。本文將重點介紹在PHP中如何進行精確配對和排除模糊包含的操作,同時結合具體的程式碼範例進行說明。精確匹配精確匹配意味著只匹配符合完全條件的字串,不匹配任何變種或包含額外字

See all articles