js replace 與replaceall實例用法詳解
來源:易賢網(wǎng) 閱讀:2748 次 日期:2015-02-06 16:03:20
溫馨提示:易賢網(wǎng)小編為您整理了“js replace 與replaceall實例用法詳解”,方便廣大網(wǎng)友查閱!

這篇文章介紹了js replace 與replaceall實例用法詳解,有需要的朋友可以參考一下

stringObj.replace(rgExp, replaceText)

參數(shù)

stringObj

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

rgExp

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

replaceText

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

說明

replace 方法的結(jié)果是一個完成了指定替換的 stringObj 對象的復(fù)制。

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

字符 含義

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

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

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

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

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

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

如果 replaceText 為函數(shù),對于每一個匹配的子字符串,調(diào)用該函數(shù)時帶有下面的 m+3 個參數(shù),此處 m 是在 rgExp 中捕獲的左括弧的個數(shù)。第一個參數(shù)是匹配的子字符串。接下來的 m 個參數(shù)是查找中捕獲的全部結(jié)果。第 m+2 個參數(shù)是在 stringObj 中匹配出現(xiàn)的偏移量,而第 m+3 個參數(shù)為 stringObj。結(jié)果為將每一匹配的子字符串替換為函數(shù)調(diào)用的相應(yīng)返回值的字符串值。

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

示例

下面的示例演示了 replace 方法將第一次出現(xiàn)的單詞 "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; // 創(chuàng)建正則表達式模式。

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; // 創(chuàng)建正則表達式模式。

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

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

}

下 面的示例(在 JScript 5.5 及更新版本中執(zhí)行)執(zhí)行的是從華氏到攝氏的轉(zhuǎn)換,它演示了使用函數(shù)作為 replaceText。要想知道該函數(shù)是如何工作的,傳遞一個包含數(shù)值的字符串,數(shù)值后要緊跟 "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循環(huán)又有效率問題,給你一個正則表達式的解決方案

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 , 大致上方法就是這樣的,可以實現(xiàn)替換全部指定字串

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

在瀏覽器地址欄輸入

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

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

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

應(yīng)該就可以替換所有的了

如果不用正則表達式

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

更多信息請查看IT技術(shù)專欄

更多信息請查看網(wǎng)頁制作
易賢網(wǎng)手機網(wǎng)站地址:js replace 與replaceall實例用法詳解
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)