<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html";charset="gbk"/>
<script type="text/javascript" >
/*var reg=/家人/g;*/
var reg=new RegExp("家人","g");
var str="咱們都是一家人,很好的一家人";
/* while((t=reg.exec(str))!=null){
alert(t.length+":"+t.index+":"+t.lastIndex); 1:5:7 1:12:14
}*/
alert(reg.test(str)); true
</script>
</head>
<body>
</body>
</html>javascript
正則表達式對象
本對象包含正則表達式模式以及代表如何應用模式的標誌。
語法 1
re = /pattern/[flags]
語法 2
re = new RegExp("pattern",["flags"])
參數
re
必選項。將要賦值爲正則表達式模式的變量名。
Pattern
必選項。要使用的正則表達式模式。若是使用語法 1,用 "/" 字符分隔模式。若是用語法 2,用引號將模式引發來。
flags
可選項。若是使用語法 2 要用引號將 flag 引發來。標誌能夠組合使用,可用的有:
g (全文查找出現的全部 pattern)
i (忽略大小寫)
m (多行查找)
說明
不要將正則表達式對象跟全局 RegExp 對象混淆。儘管聽起來像是一回事,但它們是大相徑庭的。正則表達式對象的屬性只包含一個正則表達式的信息,而全局 RegExp 對象的屬性包含了不斷更新的每個匹配出現的信息。
正則表達式對象保存用於查找字符串中的字符組合時的模式。建立正則表達式對象後,或者它被傳遞給字符串方法,或者字符串被傳遞給一個正則表達式方法。有關最近進行查找的信息被保存在全局 RegExp 對象中。
當預先知道查找字符串時用語法 1。當查找字符串常常變更或不知道時用語法 2,好比由用戶輸入獲得的字符串。
在使用前 pattern 參數被編譯爲內部格式。對語法 1 來講,pattern 在該腳本被裝載時被編譯。對語法 2 來講,pattern 在使用前,或調用 compile 方法時被編譯。
-----------
exec 方法
用正則表達式模式在字符串中運行查找,並返回包含該查找結果的一個數組。
rgExp.exec(str)
參數
rgExp
必選項。包含正則表達式模式和可用標誌的正則表達式對象。
str
必選項。要在其中執行查找的 String 對象或字符串文字。
說明
若是 exec 方法沒有找到匹配,則它返回 null。若是它找到匹配,則 exec 方法返回一個數組,而且更新全局 RegExp 對象的屬性,以反映匹配結果。數組的0元素包含了完整的匹配,而第1到n元素中包含的是匹配中出現的任意一個子匹配。這至關於沒有設置全局標誌 (g) 的 match 方法。
若是爲正則表達式設置了全局標誌,exec 從以 lastIndex 的值指示的位置開始查找。若是沒有設置全局標誌,exec 忽略 lastIndex 的值,從字符串的起始位置開始搜索。
exec 方法返回的數組有三個屬性,分別是 input、index 和 lastIndex。html
Input 屬性包含了整個被查找的字符串。java
Index 屬性中包含了整個被查找字符串中被匹配的子字符串的位置。正則表達式
LastIndex 屬性中包含了匹配中最後一個字符的下一個位置。
數組