正規表示式是一個物件,它描述了字元模式。
JavaScript的RegExp類表示正規表示式和字串和正規表示式定義,使用正規表示式來進行強大的模式匹配和搜尋和替換文字功能的方法。
正規表示式可以用RegExp( ) 構造這樣的定義:
var pattern = new RegExp(pattern, attributes); or simply var pattern = /pattern/attributes;
這裡是引數的說明:
pattern: 一個字串,指定正規表示式或其他正規表示式的模式。
attributes: 包含任何 "g", "i", 和"m" 屬性指定全域性,分別一個可選的字串,不區分大小寫和匹配。
在正規表示式的上下文中使用時,括號([])具有特殊的意義。它們被用於查詢字元的範圍。
表示式 | 描述 |
---|---|
[...] | 在括號之間的任何一個字元 |
[^...] | 任何一個字元不是括號之間 |
[0-9] | 它匹配從0到9任意十進位制數 |
[a-z] | 它匹配由小寫a到小寫 z的任何字元。 |
[A-Z] | 它通過匹配的大寫字母A-Z的任何字元 |
[a-Z] | 它通過匹配從小寫到大寫Z的一個任意字元 |
上面顯示的範圍是一般的;你也可以使用的範圍[0-3],通過3從0匹配任何十進位制數, 或範圍[b-v]匹配任何小寫字母,從b至v
頻率或方括號內的字元序列與單個字元的位置可以通過一個特殊的字元來表示。每個特殊字元具有特定的內涵。在+, *, ?, 和$標誌都遵循一個字元序列。
表示式 | 描述 |
---|---|
p+ | 它包含至少一個任意字串匹配 |
p* | 它包含零個或多個的任意字串匹配 |
p? | 它包含一個或多個的任意字串匹配 |
p{N} | 它含有N個p序列的字串匹配 |
p{2,3} | 它包含兩個或三個的序列的字串匹配 |
p{2, } | 它至少包含兩個p的序列匹配任何字串 |
p$ | 它在它的結束與對任何字串匹配 |
^p | 它在它的開始與對任何字串匹配 |
下面的例子將清除有關匹配字元的概念。
Expression | 描述 |
---|---|
[^a-zA-Z] | 任何字串不包含任何從a到Z. Z和A上的字元匹配 |
p.p | 它包含p任意字串,然後是任意字元依次匹配 |
^.{2}$ | 它正好包含兩個字元的任意字串匹配 |
<b>(.*)</b> | <b>和</ b>括起的任何字串的匹配 |
p(hp)* | 它匹配任何含字串ap後跟序列hp的零個或多個範例 |
字元 | 描述 |
---|---|
字母數位 | 它自己 |
\0 | NUL 字元 (\u0000) |
\t | 製表符 (\u0009) |
\n | 新行(\u000A) |
\v | 垂直索引標籤 (\u000B) |
\f | 換頁 (\u000C) |
\r | 回車 (\u000D) |
\xnn | 由十六進位制數位nn指定的拉丁字元; 例如,\ x0A相同睛\n |
\uxxxx | 由十六進位制數xxxx指定的Unicode字元;例如,\u0009和\t是一樣的 |
\cX | 控制字元^X;例如,\cJ的等同於換行符\n |
元字元僅僅是前面加一個反斜槓,其作用是讓組合有特殊含義的字母字元。
例如,可以使用'\d'元字元搜尋大的貨幣總額:/([\d]+)000/,這裡\d將搜尋數位字元的任意字串。
以下是元字元,可以在Perl風格的正規表示式中使用的列表。
Character Description . a single character \s a whitespace character (space, tab, newline) \S non-whitespace character \d a digit (0-9) \D a non-digit \w a word character (a-z, A-Z, 0-9, _) \W a non-word character [\b] a literal backspace (special case). [aeiou] matches a single character in the given set [^aeiou] matches a single character outside the given set (foo|bar|baz) matches any of the alternatives specified
幾個修飾符是可用,可以使工作與正規表示式要容易得多,比如大小寫,在搜尋多行等。
Modifier | 描述 |
---|---|
i | 執行不區分大小寫的匹配 |
m | 規定,如果字串有換行或回車符,^和$運算子現在可以匹配,而不是一個字串邊界對一個換行符邊界 |
g | 執行一個全域性匹配就是找到所有匹配,而不是在第一個匹配項後停止。 |
這裡是每個屬性和它們的描述的列表
Property | 描述 |
---|---|
constructor | 指定建立物件的原型的功能 |
global | 如果指定了“g”修改被設定 |
ignoreCase | 如果指定了“i”修改被設定 |
lastIndex | 在該索引開始下一個匹配 |
multiline | 如果指定了“m”修飾符設定 |
source | 文字的模式 |
這裡是每種方法及其描述的列表。
Method | 描述 |
---|---|
exec() | 執行搜尋在其字串引數匹配 |
test() | 測試其字串引數匹配 |
toSource() | 返回一個物件字面表示指定的物件; 可以使用這個值來建立一個新的物件 |
toString() | 返回表示指定物件的字串 |