首頁 > web前端 > js教程 > 主體

js replace 與replaceall實例用法詳解_javascript技巧

WBOY
發布: 2016-05-16 17:27:09
原創
1081 人瀏覽過

stringObj.replace(rgExp, replaceText)
  參數
  stringObj
  必選項。要執行該替換的 String 物件或字串文字。該字串不會被 replace 方法修改。
  rgExp
  必選項。為包含正規表示式模式或可用標誌的正規表示式物件。也可以是 String 物件或文字。如果 rgExp 不是正規表示式對象,它將被轉換為字串,並進行精確的查找;不要嘗試將字串轉換為正規表示式。
  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" 的用法。

複製代碼 代碼如下:

  ; // 宣告變數。
  var ss = "The man hit the ball with the bat.n";
  ss = "while the fielder caught the ball with the glove.";
  re = /The/g;正規表示式模式。
  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; // 建立正規表示式模式。
  r = ss.replace(re, "$3$2$1"); // 交換每一對單字。
  return(r); // 傳回結果字串。
  }

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

複製程式碼 程式碼如下:
function f2c(s) {


function f2c(s) {
test> /(d (.d*)?)Fb/g; // 初始化模式。
  return(s.replace
  (test,
  function($0,$1,$2) {
  return((($1-32) * 5/9) "CC); }
  )
  );
  }
  document.write(f2c("Water freezes at 32F and boils at 212F."); replaceAll方法,用for循環又有效率問題,給你一個正則表達式的解決方案
  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)
  應該就可以替換所有的了
如果不用正規表示式
  orgStr.replace(findStr, replaceStr)只能取代第一個
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!