JavaScript 正規表示式

2021-09-13 11:05:00 字數 4453 閱讀 4240

regexp 物件表示正規表示式,它是對字串執行模式匹配的強大工具。

/pattern/attributes
new regexp(pattern, attributes);
引數 pattern 是乙個字串,指定了正規表示式的模式或其他正規表示式。

引數 attributes 是乙個可選的字串,包含屬性 "g"、"i" 和 "m",分別用於指定全域性匹配、區分大小寫的匹配和多行匹配。ecmascript 標準化之前,不支援 m 屬性。如果 pattern 是正規表示式,而不是字串,則必須省略該引數。

乙個新的 regexp 物件,具有指定的模式和標誌。如果引數 pattern 是正規表示式而不是字串,那麼 regexp() 建構函式將用與指定的 regexp 相同的模式和標誌建立乙個新的 regexp 物件。

如果不用 new 運算子,而將 regexp() 作為函式呼叫,那麼它的行為與用 new 運算子呼叫時一樣,只是當 pattern 是正規表示式時,它只返回 pattern,而不再建立乙個新的 regexp 物件。

syntaxerror - 如果 pattern 不是合法的正規表示式,或 attributes 含有 "g"、"i" 和 "m" 之外的字元,丟擲該異常。

typeerror - 如果 pattern 是 regexp 物件,但沒有省略 attributes 引數,丟擲該異常。

修飾符    描述

i 執行對大小寫不敏感的匹配。

g 執行全域性匹配(查詢所有匹配而非在找到第乙個匹配後停止)。

m 執行多行匹配。

方括號用於查詢某個範圍內的字元:

表示式    描述

[abc] 查詢方括號之間的任何字元。

[^abc] 查詢任何不在方括號之間的字元。

[0-9] 查詢任何從 0 至 9 的數字。

[a-z] 查詢任何從小寫 a 到小寫 z 的字元。

[a-z] 查詢任何從大寫 a 到大寫 z 的字元。

[a-z] 查詢任何從大寫 a 到小寫 z 的字元。

[adgk] 查詢給定集合內的任何字元。

[^adgk] 查詢給定集合外的任何字元。

(red|blue|green) 查詢任何指定的選項。

元字元(metacharacter)是擁有特殊含義的字元:

元字元    描述

. 查詢單個字元,除了換行和行結束符。

\w 查詢單詞字元。

\w 查詢非單詞字元。

\d 查詢數字。

\d 查詢非數字字元。

\s 查詢空白字元。

\s 查詢非空白字元。

\b 匹配單詞邊界。

\b 匹配非單詞邊界。

\0 查詢 nul 字元。

\n 查詢換行符。

\f 查詢換頁符。

\r 查詢回車符。

\t 查詢製表符。

\v 查詢垂直製表符。

\*** 查詢以八進位制數 *** 規定的字元。

\xdd 查詢以十六進製制數 dd 規定的字元。

\u***x 查詢以十六進製制數 ***x 規定的 unicode 字元。

量詞    描述

n+ 匹配任何包含至少乙個 n 的字串。

n* 匹配任何包含零個或多個 n 的字串。

n? 匹配任何包含零個或乙個 n 的字串。

n 匹配包含 x 個 n 的序列的字串。

n 匹配包含 x 至 y 個 n 的序列的字串。

n 匹配包含至少 x 個 n 的序列的字串。

n$ 匹配任何結尾為 n 的字串。

^n 匹配任何開頭為 n 的字串。

?=n 匹配任何其後緊接指定字串 n 的字串。

?!n 匹配任何其後沒有緊接指定字串 n 的字串。

屬性    描述                                            ff    ie

global regexp 物件是否具有標誌 g。 1 4

ignorecase regexp 物件是否具有標誌 i。 1 4

lastindex 乙個整數,標示開始下一次匹配的字元位置。 1 4

multiline regexp 物件是否具有標誌 m。 1 4

source 正規表示式的源文字。 1 4

方法    描述                                                ff    ie

compile 編譯正規表示式。 1 4

exec 檢索字串中指定的值。返回找到的值,並確定其位置。 1 4

test 檢索字串中指定的值。返回 true 或 false。 1 4

方法    描述                                    ff    ie

search 檢索與正規表示式相匹配的值。 1 4

match 找到乙個或多個正規表示式的匹配。 1 4

replace 替換與正規表示式匹配的子串。 1 4

split 把字串分割為字串陣列。 1 4

( 1 ) replace正則匹配方法

去除字串內所有的空格:str = str.replace(/s*/g,"");

去除字串內兩頭的空格:str = str.replace(/^s|s$/g,"");

去除字串內左側的空格:str = str.replace(/^s*/,"");

去除字串內右側的空格:str = str.replace(/(s*$)/g,"");

示例:

var str = " 6 6 ";

var str_1 = str.replace(/\s*/g,"");

console.log(str_1); //66

var str = " 6 6 ";

var str_1 = str.replace(/^\s*|\s*$/g,"");

console.log(str_1); //6 6//輸出左右側均無空格

var str = " 6 6 ";

var str_1 = str.replace(/^\s*/,"");

console.log(str_1); //6 6 //輸出右側有空格左側無空格

var str = " 6 6 ";

var str_1 = str.replace(/(\s*$)/g,"");

console.log(str_1); // 6 6//輸出左側有空格右側無空格

( 2 ) str.trim()方法

trim()方法是用來刪除字串兩端的空白字元並返回,trim方法並不影響原來的字串本身,它返回的是乙個新的字串。

缺陷:只能去除字串兩端的空格,不能去除中間的空格

示例:

var str = " 6 6 ";

var str_1 = str.trim();

console.log(str_1); //6 6//輸出左右側均無空格

單獨去除左側空格則使用 str.trimleft(); //var str_1 = str.trimleft();

單獨去除右側空格則使用 str.trimright();//var str_1 = str.trimright();

( 3 ) jq方法:$.trim(str)方法

$.trim() 函式用於去除字串兩端的空白字元。
注意:$.trim()函式會移除字串開始和末尾處的所有換行符,空格(包括連續的空格)和製表符。如果這些空白字元在字串中間時,它們將被保留,不會被移除。

示例:

var str = " 6 6 ";

var str_1 = $.trim(str);

console.log(str_1); //6 6//輸出左右側均無空格

replace()方法

regexp廖雪峰

Javascript正規表示式

這段時間學習js,正好遇到了正規表示式。下面通過使用例項介紹一下正規表示式。正規表示式,又稱正規表示法 常規表示法 英語 regular expression,在 中常簡寫為regex regexp或re 電腦科學的乙個概念。正規表示式使用單個字串來描述 匹配一系列符合某個句法規則的字串。在很多文字...

JavaScript 正規表示式

一 什麼是正規表示式 正規表示式 regular expression 是乙個描述字元模式的物件。測試正規表示式 regexp 物件包含兩個方法 test 和exec 功能基本相似,用於測試字串匹配。test 方法在字串中查詢是否存在指定的正規表示式並返回布林值,如果存在則返回true,不存 在則返...

javascript 正規表示式

正規表示式 regexp物件 主要用於表單驗證 1 建立正規表示式 1 var ret pattern pattern是內容,可以是正規表示式的內容,可以是字元或是其他的內容 2 var rag new regexp pattern 括號內可以是雙引號或者單引號 2 正規表示式的exec方法 reg...