regexp物件用於規定在文字中檢索的內容
什麼是regexp?
regexp是正規表示式的縮寫
當您檢索某個檔案時,您可以規定某個要檢索的模式來描述要檢索的內容。regexp就是這種模式
定義regexp:
通過new關鍵字來定義regexp物件。以下**定義了名為patt的regexp物件,其模式是e
var patt=new regexp('e');當使用這個正規表示式在字串中檢索時,將尋找的是字元『e』
regexp物件有三個方法:
1.test() 檢索字串中的指定值。返回值是true或者是false
2.exec() 方法檢索字串中的指定值,返回值是被找到的值,如果沒找到返回nullvar patt1=new regexp("e");
document.write(patt1.test("the best things in life are free"));
regexp物件表示正規表示式,它是對字串進行模式匹配的強大工具var patt1=new regexp("e");
document.write(patt1.exec("the best things in life are free"));
建立regexp物件的語法:
new regexp(pattern,attributes)
引數parttern是字串,指定了正規表示式模式或其他正規表示式
引數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 引數,丟擲該異常。
方括號:
方括號用於查詢某個範圍內的字元
表示式:
[abc]查詢方括號之間的任何字元
[^abc]查詢任何不在方括號之間的字元
[0-9]查詢任何從0到9的數字
[a-z]查詢任何從小寫a到小寫z的字元
[adgk]
查詢給定集合內的任何字元。
[^adgk]查詢給定集合外的任何字元。
(red|blue|green)
查詢任何指定的選項。
元字元元字元是擁有特殊含義的字元
.查詢單個字元,除了換行和行結束符
\w查詢單詞字元
\w查詢非單詞字元
\d查詢數字
\d查詢非數字字元
\s查詢空白字元
\s查詢非空白字元
\b匹配單詞邊界
\b匹配非單詞邊界
\0查詢nul字元
\n查詢換行符
\f查詢換頁符
\r查詢回車符
\t查詢製表符
\v查詢垂直製表符
\***查詢以八進位制數 *** 規定的字元。
\xdd查詢以十六進製制數 dd 規定的字元。
\u***查詢以十六進製制數 ***規定的unicode字元。
量詞
n+匹配任何至少包含乙個n的字串
n*匹配任何包含0個或者多個n的字串
n?匹配任何包含0個或者1個n的字串
n匹配包含x個n的序列的字串
n匹配包含x至y個n的序列的字串
n匹配包含至少x個n的序列的字串
n$匹配任何結尾為n的字串
^n匹配任何開頭為n的字串
?=n匹配任何其後緊跟著指定字串n的字串
?!n匹配任何其後沒有緊接著字串n的字串
regexp物件屬性:
global:regexp物件是否具有標誌g
regexpobject.globalignorecase:regexp物件是否具有標誌i
lastindex乙個整數,標誌著下一次開始匹配字串的位置
multilineregexp物件是否具有標誌m
不具有標誌 g 和不表示全域性模式的 regexp 物件不能使用 lastindex 屬性。
支援正規表示式string物件的方法
search() 方法用於檢索字串中指定的子字串,或檢索與正規表示式相匹配的子字串。
match() 方法可在字串內檢索指定的值,或找到乙個或多個正規表示式的匹配。
該方法類似 indexof() 和 lastindexof(),但是它返回指定的值,而不是字串的位置。
replace() 方法用於在字串中用一些字元替換另一些字元,或替換乙個與正規表示式匹配的子串
document.write(str.replace(/microsoft/, "w3school")
)
split() 方法用於把乙個字串分割成字串陣列。
compile() 方法用於改變 regexp。輸出:
how,are,you,doing,today?
h,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?
how,are,you
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"));
js 正規表示式物件 RegExp
語法 var patt new regexp pattern,modifiers 或更簡單的方法 var patt pattern modifiers 用 來表示表示式 i 修飾符是用來執行不區分大小寫的匹配。g 修飾符是用於執行全文的搜尋 而不是在找到第乙個就停止查詢,而是找到所有的匹配 注意 當...
js物件之RegExp正規表示式
在python中如果需要使用正則 需要借助於re模組 在js自己手動建立需要的正則物件 第一種建立方法 var reg new regexp a za z a za z0 9 第二種建立方法 var reg1 a za z a za z0 9 匹配內容 關鍵字.test 返回結果為 布林值 matc...
js物件之RegExp正規表示式
在python中如果需要使用正則 需要借助於re模組 在js自己手動建立需要的正則物件 第一種建立方法 var reg new regexp a za z a za z0 9 第二種建立方法 var reg1 a za z a za z0 9 匹配內容 關鍵字.test 返回結果為 布林值 matc...