javascript中replace使用總結

2021-08-21 01:19:32 字數 2556 閱讀 2572

ecmascript提供了replace()方法。這個方法接收兩個引數,第乙個引數可以是乙個regexp物件或者乙個字串,第二個引數可以是乙個字串或者乙個函式。現在我們來詳細講解可能出現的幾種情況。

1. 兩個引數都為字串的情況

1

var text = 'cat, bat, sat, fat';2//

在字串中找到at,並將at替換為ond,只替換一次

3var result = text.replace('at', 'ond');4//

"cond, bat, sat, fat"

5 console.log(result);

2. 第乙個引數為regexp物件,第二個引數為字串

我們可以發現上面這種情況只替換了第乙個at,如果想要替換全部at,就必須使用regexp物件。

1

var text = 'cat, bat, sat, fat';2//

使用/at/g 在全域性中匹配at,並用ond進行替換

3var result = text.replace(/at/g, 'ond');4//

cond, bond, sond, fond

5 console.log(result);

3. 考慮regexp物件中捕獲組的情況。  

regexp具有9個用於儲存捕獲組的屬性。$1, $2...$9,分別用於儲存第一到九個匹配的捕獲組。我們可以訪問這些屬性,來獲取儲存的值。

1

var text = 'cat, bat, sat, fat';2//

使用/(.at)/g 括號為捕獲組,此時只有乙個,因此所匹配的值存放在$1中

3var result = text.replace(/(.at)/g, '$($1)');4//

$(cat), $(bat), $(sat), $(fat)

5 console.log(result);

4. 第二個引數為函式的情況,regexp物件中不存在捕獲組的情況。

1

var text = 'cat, bat, sat, fat';2//

使用/at/g 匹配字串中所有的at,並將其替換為ond,3//

函式的引數分別為:當前匹配的字元,當前匹配字元的位置,原始字串

4var result = text.replace(/at/g, function

(match, pos, originaltext) );

8console.log(result);9//

輸出10

/*11

at 1 dd.html:12:9

12at 6 dd.html:12:9

13at 11 dd.html:12:9

14at 16 dd.html:12:9

15cond, bond, sond, fond dd.html:16:5

16*/

5. 第二個引數為函式的情況,regexp物件中存在捕獲組的情況。

1

var text = 'cat, bat, sat, fat';2//

使用/(.at)/g 匹配字串中所有的at,並將其替換為ond,3//

當正規表示式中存在捕獲組時,函式的引數一次為:模式匹配項,第乙個捕獲組的匹配項,4//

第二個捕獲組的匹配項...匹配項在字串中的位置,原始字串

5var result = text.replace(/.(at)/g, function

() );

9console.log(result);

10//

輸出11

/*12

cat at 1

13bat at 6

14sat at 11

15fat at 16

16cond, bond, sond, fond

17*/

以上為replace方法的所有可以使用的情況,下面我們使用replace和正規表示式共同實現字串trim方法。

1     (function

(myframe) ;

6 window.myframe =myframe;

7 })(window.myframe ||{});8//

測試9var str = ' hello world '

10 console.log(str.length); //

1511 console.log(myframe.trim(str).length); //

11

可以利用第二個引數為函式的方法用陣列來替換多個值,一種應用是在前台替換message,如

let message = 'use  instead of ';

let parameters = ['a', 'b'];

message.replace(/\/g, function() );

Xcode中lldb的REPL除錯方法

xcode中lldb偵錯程式有乙個repl語句,可以用來模擬swift直譯器的repl行為,即read eval print loop.在xcode裡隨意開啟程式,中斷入偵錯程式.在除錯控制台中輸入repl命令,然後我們輸入乙個函式 func num0 ary int intelse 注意在這個例子...

sublime 安裝repl外掛程式

sublime除錯python程式,不能input,但是我們可以借助repl的外掛程式來實現 然後外掛程式執行 外掛程式執行路徑 tools sublimerepl python python run current file 接下來配置快捷鍵,開啟 sublime text preferences...

sublime 安裝repl外掛程式

sublime除錯python程式,不能input,但是我們可以借助repl的外掛程式來實現 然後外掛程式執行 外掛程式執行路徑 tools sublimerepl python python run current file 接下來配置快捷鍵,開啟 sublime text preferences...