JavaScript中的正規表示式簡明總結_基礎知識
一、定義正規表示式的方法
定義正規表示式的方法有兩種:建構函式定義和正規表示式直接量定義。例如:
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,則進行全域替換,否則只替換匹配的第一個子字串。如果第一個參數不是正規表示式,則直接搜尋該字串,而不是將其轉換為正規表示式。如:
match():它的參數是正規表示式,若不是則透過RegExp轉換,傳回的則是由符合結果組成的陣列。如果設定了修飾符g則進行全域匹配。如:
var d = '55 ff 33 77 tt'hhmatch (/d /g); // d = ["55", "33", "77"]
var d = '123,31,453,645'.split(' '); // d = ["123", "31", "453", "645"]
二、RegExp物件
每個RegExp物件都有5個屬性。屬性source是一個唯讀字串,包含正規表示式的文字。屬性global是只讀布林值,用以說明這個正規表示式是否帶有修飾符g。屬性ignoreCase是一個只讀布林值,用以說明這個正規表示式是否帶有修飾符i。屬性multiline是一個只讀布林值,用以說明這個正規表示式是否帶有修飾符m。屬性lastIndex是一個可讀可寫的整數,如果匹配模式帶有g修飾符,這個屬性會儲存整個字串中下一次檢索的開始位置。
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

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

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

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

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

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

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

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

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