JS的正則表達式

JS的正則表達式有非常重要的作用:
可以用兩種方式實例化RegExp類型的對象。
方法一,構造函數實例化: var myRegex = new RegExp("\\w+", "igm "); //\w+爲實際正則表達式,注意第一個\爲轉義之用,igm分別表示忽略大小寫,全局搜索,多行搜索,這個後面會解釋 。
方法二,直接賦值法: var myRegex = /\w+/igm; //效果與上一個語句一樣,只是這裏不需要用轉移字符,原正則表達式是什麼樣子就是什麼樣子,igm就和前面例子的igm作用一樣具體用什麼方式看大家喜好了,個人覺得第二種方式寫的正則比較好讀些,RegexBuddy幫助文檔也是推薦第二種方式。
RegExp對象包含以下一些操作: exec(string str):執行正則表達式匹配,並返回匹配結果,根據MSDN給出的例子運行結果看,exec每次執行都是從上次直接的匹配結束位置開始,並且返回的值似乎是RerExp對象,而RegexBuddy給出的解釋是返回一個數組,但是沒有給出詳細例子,我覺得還是根據試驗結果爲依據比較可靠。 compile(string regex, string flags):預編譯正則表達式以使其運行更快,經過測試的確預先編譯後效率有明顯提升。
regex參數爲正則表達式,flags可以爲以下3個值的組合:
g – 全局搜索,我的試驗結果是不加g標誌就只能匹配第一個符合條件的字符串
i – 忽略大小寫
m – 多行搜索,似乎默認已經是多行搜索了
 
test(string str):如果str匹配正則表達式返回true,否則返回false,這個類似string對象的match方法 RegExp對象包含以下一些屬性:
index:字符串中第一個匹配表達式的位置,初始爲-1
input:正則表達式的匹配目標,注意是隻讀的
lastIndex:下一個匹配表達式的位置,原話是(Returns the character position where the next match begins in a searched string.)也不知道有沒有翻譯錯,這個屬性我沒有用到。 lastMatch:最後一個匹配表達式的字符串
lastParen:最後一個匹配的子匹配串,比如正則表達式裏有多個以()分組的匹配項,lastParen表示最後一組所匹配的結果
leftContext:從目標字符串的開頭到last match的起始位置的所有字符。
rightContext:從last match的結束位置到整個目標字符串的結束位置的所有字符。
$1…$9:表示第n組匹配的結果,這個在正則表達式裏有多個以()分組時有用.
接下來講講,JScript中String對象與正則表達式有關的操作:
match(string regex):接受一個正則表達式,並返回該字符串是否與這個表達式匹配。
replace(srting regex, string str):將與正則表達式匹配的子字符串替換爲str.
例子:
<script >
                var s;                //聲明變量
                var re = new RegExp("d(b+)(d)","ig");//確定正則表達式,以()爲單位,該正則有兩組
                var str = "cdbBdbsbdbdz";
                var arr = re.exec(str);//執行它,這裏返回的是數組
                alert(arr);
                s = "$1 contains:" + RegExp.$1 + "\n";
                s += "$2 contains:" + RegExp.$2 + "\n";
                s += "$3 contains:" + RegExp.$3;               //這一行就沒有,因爲只有兩組
               alert(s);         
</script>
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章