JavaScript_正則表達式

 

定義:由一個字符序列形成的搜索模式。正則表達式可用於所有文本搜索和文本替換的操作。

語法:

/pattern/modifiers
正則表達式,修飾符(不區分大小寫)

正則表達式修飾符

修飾符 可以在全局搜索中不區分大小寫:

修飾符 描述
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) 查找任何指定的選項。
(x|y) 查找任何以 | 分隔的選項。

元字符是擁有特殊含義的字符:

元字符 描述
. 查找單個字符,除了換行和行結束符。
\w 查找單詞字符。

\W

查找非單詞字符。
\d 查找數字。
\D 查找非數字字符。
\s 查找空白字符。
\S 查找非空白字符。
  匹配單詞邊界。
\B 匹配非單詞邊界。
\0 查找 NUL 字符。
\n 查找換行符。
\f 查找換頁符。
\r 查找回車符。
\t 查找製表符。
\v 查找垂直製表符。
\xxx 查找以八進制數 xxx 規定的字符。
\xdd 查找以十六進制數 dd 規定的字符。
\uxxxx 查找以十六進制數 xxxx 規定的 Unicode 字符。

量詞:

量詞 描述
n+ 匹配任何包含至少一個 n 的字符串。
n* 匹配任何包含零個或多個 n 的字符串。
n? 匹配任何包含零個或一個 n 的字符串。
n{X} 匹配包含 X 個 n 的序列的字符串。
n{X,Y} 匹配包含 X 至 Y 個 n 的序列的字符串。
n{ X, } 匹配包含至少 X 個 n 的序列的字符串。
n$ 匹配任何結尾爲 n 的字符串。
^n 匹配任何開頭爲 n 的字符串。
?=n 匹配任何其後緊接指定字符串 n 的字符串。
?!n 匹配任何其後沒有緊接指定字符串 n 的字符串。

使用字符串方法

在 JavaScript 中,正則表達式通常用於兩個字符串方法 : search() 和 replace()。

search() 方法 

用於檢索字符串中指定的子字符串,或檢索與正則表達式相匹配的子字符串,並返回子字符串的起始位置。

使用正則表達式搜索 "w3cschool" 字符串,且不區分大小寫:

var str = "Visit w3cschool"; 
var n = str.search(/w3cschool/i);
輸出結果爲:
6

search 方法可使用字符串作爲參數。字符串參數會轉換爲正則表達式:

檢索字符串中 "w3cschool" 的子字符串:
var str = "Visit w3cschool!"; 
var n = str.search("w3cschool");
輸出結果爲:
6

replace() 方法

用於在字符串中用一些字符替換另一些字符,或替換一個與正則表達式匹配的子字符串。

使用正則表達式且不區分大小寫將字符串中的 Microsoft 替換爲 w3cschool :

var str = "Visit Microsoft!"; 
var res = str.replace(/microsoft/i, "w3cschool");
結果輸出爲:
Visit w3cschool!

replace() 方法將接收字符串作爲參數:

var str = "Visit Microsoft!"; 
var res = str.replace("Microsoft", "w3cschool");
結果輸出爲:
Visit w3cschool!

總結:正則表達式參數可用在以上方法中 (替代字符串參數)。 正則表達式使得搜索功能更加強大(如實例中不區分大小寫)。

 

match()方法

split() 方法

 

使用 RegExp 對象

在 JavaScript 中,RegExp 對象是一個預定義了屬性和方法的正則表達式對象。

test()方法

用於檢測一個字符串是否匹配某個模式,如果字符串中含有匹配的文本,則返回 true,否則返回 false。

var patt = /e/; 
patt.test("The best things in life are free!");
字符串中含有 "e",所以該實例輸出爲:
true

exec()方法

用於檢索字符串中的正則表達式的匹配。該函數返回一個數組,其中存放匹配的結果。如果未找到匹配,則返回值爲 null。

/e/.exec("The best things in life are free!");
字符串中含有 "e",所以該實例輸出爲:
e

compile() 方法

用於改變 RegExp。compile() 既可以改變檢索模式,也可以添加或刪除第二個參數。

var patt1=new RegExp("e"); document.write(patt1.test("The best things in life are free")); patt1.compile("d"); document.write(patt1.test("The best things in life are free"));
由於字符串中存在 "e",而沒有 "d",以上代碼的輸出是: 
truefalse

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章