使用正則表達式替換字符串的方法(replace方法)

正則表達式(regular expression)描述了一種字符串匹配的模式(pattern),可以用來檢查一個串是否含有某種子串、將匹配的子串替換或者從某個串中取出符合某個條件的子串等。

使用正則表達式替換字符串的方法(replace方法)

語法

<code>str.replace(regexp|substr, newSubStr|function)/<code>

參數

<code>regexp(pattern)/<code>

一個RegExp對象或者其字面量。該正則所匹配的內容會被第二個參數的返回值替換掉。

<code>substr(pattern)/<code>

一個要被 newSubStr 替換的{{jsxref("String","字符串")}}。其被視為一整個字符串,而不是一個正則表達式。僅僅是第一個匹配會被替換。

<code>newSubStr (replacement)/<code>

用於替換掉第一個參數在原字符串中的匹配部分的 {{jsxref("String", "字符串")}}

<code>function (replacement)/<code>

一個用來創建新子字符串的函數,該函數的返回值將替換掉第一個參數匹配到的結果。

返回值

一個部分或全部匹配由替代模式所取代的新的字符串。

描述

上面語法的含義是說:一共兩個參數,但是兩個參數可以分別傳輸不同的類型的值。

可能你看上面BB半天了也沒看明白,沒關係,我們直接來上代碼:

用法

1. 基本用法

<code>var x = "abcda";
//兩個參數都是字符串
var y = x.replace('a','x');//'xbcda'/<code>

1. 進階用法

<code>var x = "abcda";
//前面參數使用正則,後面使用字符串
var y = x.replace(/a/g,'x');//'xbcdx'/<code>

1. 複雜用法

<code>var x = 'abcda';
//前面參數使用正則,後面使用字符串
var y = x.replace(/a/g,function(match){
return match.toUpperCase();
});//'AbcdA'/<code>

應用場景

這裡只講複雜用法中的應用場景實際使用,比如有個需求:你需要html文件中的標籤之間的所有標籤中的字符a替換為字符b。當然如果是正則大神的話就可以跳過這裡了,主要以下方式比較容易理解,更適合正則新手。

解決方法:

<code>var allData = ""+'\\r\\n'+
"
aaa
"+'\\r\\n'+
"

aaa

"+'\\r\\n'+
"";
allData = allData.replace(/\\([\\s\\S]*?)\\/g, function(match) {
return match.replace(/\\(.*?)\\/g, function(match1) {
return match1.replace(/a/g, "b")
})
});/<code>

PS:在進行全局的搜索替換時,正則表達式需包含 g 標誌。


分享到:


相關文章: