由于昨天小伙伴定制的插件中含有大量的JS數據處理邏輯,其中就包含了一些字符串中的指定字符串的替換功能,就惡補了一下前臺HTML DOM 中replace() 方法的使用。js的replace()方法是用于替換某些內容,它可以接收兩個參數,第一個是一個被替換的正則表達式對象或者一個字符串,第二個可以是將要替換成的內容或者函數,將要替換成的內容須是一個字符串。

replace() 方法的定義與用法

replace() 方法用于在字符串中用一些字符替換另一些字符,或替換一個與正則表達式匹配的子串。

語法

stringObject.replace(regexp/substr,replacement)

regexp/substr:必需。規定子字符串或要替換的模式的 RegExp 對象。

国产视频app請注意,如果該值是一個字符串,則將它作為要檢索的直接量文本模式,而不是首先被轉換為 RegExp 對象。

replacement:必需。一個字符串值。規定了替換文本或生成替換文本的函數。

舉例:

利用JS的replace()方法替換字符串中指定字符

代碼:

var d = '飛鳥慕魚博客博主墨除';
txt = d.replace(/墨除/,'墨初');
console.log(txt);
//打印結果:飛鳥慕魚博客博主墨初

利用JS的replace()方法替換全局字符串中指定字符

代碼如下

var d = '飛鳥慕魚博客博主為墨除,其推出了幾款zblog的插件,都是以墨除XXXX為命名的';
txt = d.replace(/墨除/,'墨初');
console.log(txt);
//打印結果:飛鳥慕魚博客博主為墨初,其推出了幾款zblog的插件,都是以墨除XXXX為命名的

通上以上代碼我們不能看出,js 的replace()方法默認替換只替換第一個匹配的字符,如果字符串中有超過兩個以上的對應字符就無法進行替換,這時候就要進行一點操作,進行全部替換。

全局替換

代碼

var d = '飛鳥慕魚博客博主為墨除,其推出了幾款zblog的插件,都是以墨除XXXX為命名的';
txt = d.replace(/墨除/g,'墨初');
console.log(txt);
//打印結果:飛鳥慕魚博客博主為墨初,其推出了幾款zblog的插件,都是以墨初XXXX為命名的

對比一下兩段代碼的匹配條件 "/墨除/"與"/墨除/g",如果后者可以進行全局的指定字符的替換。

匹配條件"/墨除/g"中的"g”表示全局匹配將替換所有匹配的子串,如果不加'g'當匹配到第一個后就結束了。 

補充點:

1."/ /”這個是固定寫法, 

2.'\s”是轉移符號用以匹配任何空白字符,包括空格、制表符、換頁符等等, 

国产视频app3."g”表示全局匹配將替換所有匹配的子串,如果不加”g”當匹配到第一個后就結束了。