JavaScript正則表達式三
正則表達式對象的方法:
test用於測試字符串參數中是否存在匹配正則表達式模式的字符串,如果存在返回true,不存在返回false。
exec使用正則表達式模式對字符串執行搜索,並將更新全局RegExp對象的屬性以反映匹配結果。
如果沒有匹配的文本則返回null,否則返回一個結果數組:
index聲明匹配文本的第一個字符的位置。
input存放被檢索的字符串string。
exec的非全局表達式:
調用非全局的RegExp對象的exec()時,返回數組。
第一個元素是與正則表達式相匹配的文本
第二個元素是與RegExpObject的第一個子表達式相匹配的文本(如果有的話)
第三個元素是與RegExp對象的第二個子表達式相匹配的文本(如果有的話),以此類推
對象屬性:
global:是否全文搜索,默認false
ignore case:是否大小寫敏感,默認是false
multiline:多行搜索,默認值是false
lastIndex:是當前表達式匹配內容的最後一個字符的下一個位置
source:正則表達式的文本字符串
字符串對象的方法:
search()方法用於檢索字符串中指定的子字符串,或檢索與正則表達式相匹配的子字符串方法返回第一個匹配結果index,查找不到返回-1
search()方法不執行全局匹配,它將忽略標誌g,並且總是從字符串的開始進行檢索
match()方法將檢索字符串,以找到一個或多個與regexp匹配的文本
regexp是否具有標誌g對結果影響很大
regexp的非全局調用:
如果regexp沒有標誌g,那麽match()方法就只能在字符串中執行一次匹配
如果沒有找打匹配的文本,將返回null
否則它將返回一個數組,其中存放了它找到的匹配文本有關的信息
返回數組的第一個元素存放的是匹配文本,而其余的元素存放的是與正則表達式的子表達式匹配的文本
除了常規的數組元素之外,將返回的數組還含有2個對象屬性:
index聲明匹配文本的起始字符在字符串的位置
input聲明對stringObject的引用
regexp的全局調用:
如果regexp具有標誌g,則match()方法將執行全局檢索,找到字符串中的所有匹配的子字符串
沒有找到任何匹配的子串,則返回null
如果找到一個或多個匹配子串,則返回一個數組
數組元素中存放的是字符串中所有的匹配子串,而且也沒有index屬性或input屬性
split把字符串分割為字符數組,在一些復雜的情況下可以使用正則表達式解決
function參數的含義:
function會在每次匹配替換的時候調用,有四個參數:
匹配字符串
正則表達式分組內容,沒有分組則沒有該參數
匹配項在字符串中的index
原字符串
replace的用法:
String.prototype.replace(str,replaceStr)
String.prototype.replace(reg,replaceStr)
String.prototype.replace(reg,function)
JavaScript正則表達式三