熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

js replace 與replaceall實例用法

2013-11-15 11:57:00  來源: JSP教程 

  js replace 與replaceall實例用法

  stringObjreplace(rgExp replaceText)

  參數

  stringObj

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

  rgExp

  必選項為包含正則表達式模式或可用標志的正則表達式對象也可以是 String 對象或文字如果 rgExp 不是正則表達式對象它將被轉換為字符串並進行精確的查找;不要嘗試將字符串轉化為正則表達式

  replaceText

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

  說明

  replace 方法的結果是一個完成了指定替換的 stringObj 對象的復制

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

  字符 含義

  $$ $ (JScript 或更新版本)

  $& 指定與整個模式匹配的 stringObj 的部分 (JScript 或更新版本)

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

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

  $n 捕獲的第 n 個子匹配此處 n 為從的十進制一位數 (JScript 或更新版本)

  $nn 捕獲的第 nn 個子匹配此處 nn 為從的十進制兩位數 (JScript 或更新版本)

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

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

  示例

  下面的示例演示了 replace 方法將第一次出現的單詞 "The" 替換為單詞 "A" 的用法

  function ReplaceDemo(){

  var r re; // 聲明變量

  var ss = "The man hit the ball with the batn";

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

  re = /The/g; // 創建正則表達式模式

  r = ssreplace(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 = ssreplace(re "$$$"); // 交換每一對單詞

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

  }

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

  function fc(s) {

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

  return(sreplace

  (test

  function($$$) {

  return((($) * /) + "C");

  }

  )

  );

  }

  documentwrite(fc("Water freezes at F and boils at F"));

  js居然不提供replaceAll方法用for循環又有效率問題給你一個正則表達式的解決方案

  js 代碼

  StringprototypereplaceAll = function(ss){

  return thisreplace(new RegExp(s"gm")s);

  }

  方法 stringreplace(new RegExp(oldString"gm")newString))

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

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

  在浏覽器地址欄輸入

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

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

  orgStrreplace(new RegExp(findStr g) replaceStr)

  應該就可以替換所有的了

  如果不用正則表達式

  orgStrreplace(findStr replaceStr)只能替換第一個


From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19955.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.