正則表達式和RegExp對象
正則表達式是一個對象,它描述了字符模式。
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的零個或多個實例 |
Literal characters:
字符 | 描述 |
---|---|
字母數字 | 它自己 |
\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 | 執行一個全局匹配就是找到所有匹配,而不是在第一個匹配項後停止。 |
RegExp 屬性:
這裡是每個屬性和它們的描述的列表
Property | 描述 |
---|---|
constructor | 指定創建對象的原型的功能 |
global | 如果指定了“g”修改被設置 |
ignoreCase | 如果指定了“i”修改被設置 |
lastIndex | 在該索引開始下一個匹配 |
multiline | 如果指定了“m”修飾符設置 |
source | 文本的模式 |
RegExp 方法:
這裡是每種方法及其描述的列表。
Method | 描述 |
---|---|
exec() | 執行搜索在其字符串參數匹配 |
test() | 測試其字符串參數匹配 |
toSource() | 返回一個對象字麵表示指定的對象; 可以使用這個值來創建一個新的對象 |
toString() | 返回表示指定對象的字符串 |