js replace 與replaceall執行個體用法

來源:互聯網
上載者:User

   js replace 與replaceall執行個體用法

  stringObj.replace(rgExp, replaceText)

  參數

  stringObj

  必選項。要執行該替換的 String 對象或字串文字。該字串不會被 replace 方法修改。

  rgExp

  必選項。為包含Regex模式或可用標誌的Regex對象。也可以是 String 對象或文字。如果 rgExp 不是Regex對象,它將被轉換為字串,並進行精確的尋找;不要嘗試將字串轉化為Regex。

  replaceText

  必選項。是一個String 對象或字串文字,對於stringObj 中每個匹配 rgExp 中的位置都用該對象所包含的文字加以替換。在 Jscript 5.5 或更新版本中,replaceText 參數也可以是返回替換文本的函數。

  說明

  replace 方法的結果是一個完成了指定替換的 stringObj 對象的複製。

  下面任意的匹配變數都能用來識別最新的匹配以及找出匹配的字串。在需要動態決定替換字串的文本替換中可以使用匹配變數。

  字元 含義

  $$ $ (JScript 5.5 或更新版本)

  $& 指定與整個模式比對的 stringObj 的部分。 (JScript 5.5 或更新版本)

  $` 指定由 $& 描述的匹配之前的 stringObj 部分。 (JScript 5.5 或更新版本)

  $' 指定由 $& 描述的匹配之後的 stringObj 部分。 (JScript 5.5 或更新版本)

  $n 捕獲的第 n 個子匹配,此處 n 為從1到9的十進位一位元。 (JScript 5.5 或更新版本)

  $nn 捕獲的第 nn 個子匹配,此處 nn 為從01到99的十進位兩位元。 (JScript 5.5 或更新版本)

  如果 replaceText 為函數,對於每一個匹配的子字串,調用該函數時帶有下面的 m+3 個參數,此處 m 是在 rgExp 中捕獲的左括弧的個數。第一個參數是匹配的子字串。接下來的 m 個參數是尋找中捕獲的全部結果。第 m+2 個參數是在 stringObj 中匹配出現的位移量,而第 m+3 個參數為 stringObj。結果為將每一匹配的子字串替換為函數調用的相應傳回值的字串值。

  Replace 方法更新全域 RegExp 對象的屬性。

  樣本

  下面的樣本示範了 replace 方法將第一次出現的單詞 "The" 替換為單詞 "A" 的用法。

  function ReplaceDemo(){

  var r, re; // 聲明變數。

  var ss = "The man hit the ball with the bat.n";

  ss += "while the fielder caught the ball with the glove.";

  re = /The/g; // 建立Regex模式。

  r = ss.replace(re, "A"); // 用 "A" 替換 "The"。

  return(r); // 返回替換後的字串。

  }

  另外, replace 方法也可以替換模式中的子運算式。 下面的範例示範了交換字串中的每一對單詞:

  function ReplaceDemo(){

  var r, re; // 聲明變數。

  var ss = "The rain in Spain falls mainly in the plain.";

  re = /(S+)(s+)(S+)/g; // 建立Regex模式。

  r = ss.replace(re, "$3$2$1"); // 交換每一對單詞。

  return(r); // 返回結果字串。

  }

  下面的樣本(在 JScript 5.5 及更新版本中執行)執行的是從華氏到攝氏的轉換,它示範了使用函數作為 replaceText。要想知道該函數是如何工作的,傳遞一個包含數值的字串,數值後要緊跟 "F" (例如 "Water boils at 212")。

  function f2c(s) {

  var test = /(d+(.d*)?)Fb/g; // 初始化模式。

  return(s.replace

  (test,

  function($0,$1,$2) {

  return((($1-32) * 5/9) + "C");

  }

  )

  );

  }

  document.write(f2c("Water freezes at 32F and boils at 212F."));

  js居然不提供replaceAll方法,用for迴圈又有效率問題,給你一個Regex的解決方案

  js 代碼

  String.prototype.replaceAll = function(s1,s2){

  return this.replace(new RegExp(s1,"gm"),s2);

  }

  方法: string.replace(new RegExp(oldString,"gm"),newString))

  gm g=global, m=multiLine , 大致上方法就是這樣的,可以實現替換全部指定字串

  另一個簡單的驗證JS的方法:

  在瀏覽器地址欄輸入

  javascript:alert("abcabcabc".replace(new RegExp("a","gm"),"ad"))

  這樣比較省事 ;) ,不知道多行的會不會很方便

  orgStr.replace(new RegExp(findStr, 'g'), replaceStr)

  應該就可以替換所有的了

  如果不用Regex

  orgStr.replace(findStr, replaceStr)只能替換第一個

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.