淺談JavaScript的字符串的replace方法


  JavaScript字符串提供了一個replace方法。replace方法可以接受兩個參數:第一個參數可以使RegExp對象或者一個字符串,第二個參數可以是一個字符串或者一個函數。如果第一個參數是字符串,那么只會替換第一個字符串。如果想替換所有的字符串,則必須使用正則表達式。

1 var str="hello world";
2 var str1=str.replace("o","h");
3 console.log(str1);//hellh world

  第一行代碼定義了一個字符串變量,並初始化,第二行代碼使用replace方法,將字符串中的o替換為h,從結果來看使用字符串替換,只能替換第一個字符串。

1 var str="hello world";
2 var str1=str.replace(/o/g,"h");
3 console.log(str1);//hellh whrld

  上面的代碼使用了正則表達式來傳遞參數,正則表達式會匹配所有的字符串,並替換掉。

  

1 var str="hello world";
2 var str1=str.replace(/o/g,function(match,pos,orginText){
3         console.log(pos);
4         return "a";
5 });
6 console.log(str1);//hella warld

  上面的代碼,第一行定義了字符串變量,並初始化。第二行調用了字符串的replace方法,第一個參數是模式匹配,第二個參數是一個函數。函數擁有三個參數:第一個參數是匹配到的字符串,第二個參數是匹配的位置,第三個參數是原字符串。在函數里面可以對字符串進行操作。使用函數作為第二個參數,可以做一些復雜的替換,比如當匹配多個字符時候,可以對不同的字符做不同的替換。

 1     var str="hello world";
 2                 var str1=str.replace(/[ol]/g,function(match,pos,orginText){
 3                     console.log(pos);
 4                     if(match=="o"){
 5                         return "a";
 6                     }
 7                     else {
 8                         return "b";
 9                     }
10                     
11                 });
12                 console.log(str1);//hebba warbd

上面的代碼模式匹配所有的字符o或者字符l,並在函數中進行操作。將字符o替換為a,字符l替換為b


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM