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

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

stringObj.replace(rgExp, replaceText)

參數(shù)

stringObj

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

rgExp

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

replaceText

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

說明

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

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

字符 含義

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

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

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

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

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

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

如果 replaceText 為函數(shù),對于每一個(gè)匹配的子字符串,調(diào)用該函數(shù)時(shí)帶有下面的 m+3 個(gè)參數(shù),此處 m 是在 rgExp 中捕獲的左括弧的個(gè)數(shù)。第一個(gè)參數(shù)是匹配的子字符串。接下來的 m 個(gè)參數(shù)是查找中捕獲的全部結(jié)果。第 m+2 個(gè)參數(shù)是在 stringObj 中匹配出現(xiàn)的偏移量,而第 m+3 個(gè)參數(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)建正則表達(dá)式模式。

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

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

}

另外, replace 方法也可以替換模式中的子表達(dá)式。 下面的范例演示了交換字符串中的每一對單詞:

function ReplaceDemo(){

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

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

re = /(S+)(s+)(S+)/g; // 創(chuàng)建正則表達(dá)式模式。

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

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

}

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

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

另一個(gè)簡單的驗(yàn)證JS的方法:

在瀏覽器地址欄輸入

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

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

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

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

如果不用正則表達(dá)式

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

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

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

2025國考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(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:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)