正則表達(dá)式是形成搜索模式的一系列字符。
在文本中搜索數(shù)據(jù)時,可以使用此搜索模式來描述要搜索的內(nèi)容。
正則表達(dá)式可以是單個字符,也可以是更復(fù)雜的模式。
正則表達(dá)式是描述字符模式的對象。
RegExp 構(gòu)造函數(shù)創(chuàng)建用于與模式匹配文本正則表達(dá)式對象。
Syntax:
new RegExp(pattern, modifiers);
或簡單地
/pattern/modifiers;
var regex = /nhooo/g
示例說明:
nhooo是一種模式(用于搜索)
g是修飾符(執(zhí)行全局匹配)
您可以在我們的JavaScript RegExp教程中了解有關(guān)正則表達(dá)式的更多信息。
修飾符用于執(zhí)行全局搜索,區(qū)分大小寫和多行搜索:
修飾符 | 描述 |
---|---|
g | 執(zhí)行全局匹配,即查找所有匹配,而不是在第一個匹配后停止 |
i | 執(zhí)行不區(qū)分大小寫的匹配 |
m | 執(zhí)行多行匹配 |
方括號用于查找一系列字符:
表達(dá) | 描述 |
---|---|
[abc] | 匹配在方括號中的任意字符 |
[^abc] | 匹配不在括號中的任意字符 |
[0-9] | 匹配方括號之間的任意數(shù)字 |
[^0-9] | 匹配不在括號之間的任何字符(任何非數(shù)字字符) |
(x|y) | 匹配指定的任何代替方案 |
元字符只是一個字母字符,后跟一個反斜杠,以使組合具有特殊含義:
元字符 | 描述 |
---|---|
. | 匹配除換行符 \n 之外的任何單字符。 |
\w | 匹配字母和數(shù)字 [0-9a-zA-Z] |
\W | 匹配非字母和數(shù)字 |
\d | 匹配數(shù)字[0-9] |
\D | 匹配非數(shù)字[^0-9] |
\s | 匹配空格 換行和縮進(jìn)符 |
\S | 匹配非空格 換行和縮進(jìn)符 |
\b | 在單詞的開頭/結(jié)尾找到匹配項 |
\B | 匹配不在單詞開頭/結(jié)尾處的匹配項 |
\0 | 匹配一個NUL字符 |
\n | 匹配換行符 |
\f | 匹配換頁符 |
\r | 匹配回車符 |
\t | 匹配制表符 |
\v | 匹配垂直制表符 |
\xxx | 匹配由八進(jìn)制數(shù)字xxx指定的字符 |
\xdd | 匹配由十六進(jìn)制數(shù)字dd指定的字符 |
\uxxxx | 匹配由十六進(jìn)制數(shù)字xxxx指定的Unicode字符 |
方括號字符序列和單個字符的頻率或位置可以用特殊字符表示:
量詞 | 描述 |
---|---|
z+ | 匹配任何包含至少一個z字符串 |
z* | 匹配任何包含零個或多個z字符串 |
z? | 匹配任何包含零或一個z字符串 |
z{X} | 匹配包含X個z的序列的字符串 |
z{X,Y} | 匹配包含X至Y個z的序列的字符串 |
z{X,} | 匹配至少包含 X 個z的序列的字符串。 |
z$ | 匹配任何以z結(jié)尾的字符串 |
^z | 匹配任何以z開頭的字符串 |
?=z | 匹配后跟特定字符串z的任何字符串 |
?!z | 匹配任何后面沒有特定字符串z的字符串 |
下表列出了RegExp對象的屬性:
屬性 | 描述 |
---|---|
constructor | 返回創(chuàng)建RegExp對象原型的函數(shù) |
global | 檢查是否設(shè)置了“g”修飾符 |
ignoreCase | 檢查是否設(shè)置了“i”修飾符 |
lastIndex | 開始下一個匹配的索引 |
multiline | 檢查是否設(shè)置了“m”修飾符 |
source | 返回RegExp模式的文本 |
下表列出了RegExp對象的方法:
方法 | 描述 |
---|---|
exec() | 搜索其字符串參數(shù)中的匹配項 |
test() | 測試其字符串參數(shù)是否匹配并返回布爾值 |
toString() | 返回表示指定對象的字符串 |