ホームページ >ウェブフロントエンド >jsチュートリアル >js replaceとreplaceallインスタンスの使い方を詳しく解説_javascriptスキル

js replaceとreplaceallインスタンスの使い方を詳しく解説_javascriptスキル

WBOY
WBOYオリジナル
2016-05-16 17:27:091143ブラウズ

stringObj.replace(rgExp, replaceText)
パラメータ
stringObj
必須。この置換を実行する String オブジェクトまたは文字列リテラル。文字列は replace メソッドでは変更されません。
rgExp
必須。正規表現パターンまたは使用可能なフラグを含む正規表現オブジェクトです。 String オブジェクトまたはリテラルも使用できます。 rgExp が正規表現オブジェクトではない場合、文字列に変換され、文字列の正規表現への変換は行われません。
replaceText
必須。 stringObj 内の rgExp 内の一致する各位置をオブジェクトに含まれるリテラルで置き換える String オブジェクトまたは文字列リテラルです。 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 までの 10 進数です。 (JScript 5.5 以降)
$nn は、nn 番目の部分一致をキャプチャします。ここで、nn は、01 から 99 までの 10 進数の 2 桁の数字です。 (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 = "その男はバットでボールを打った。n";
ss = "野手がグローブでボールを捕った間。";
re = /The/g;正規表現パターン。
r = ss.replace(re, "A"); // 「The」を「A」に置き換えます。
Return(r); // 置換された文字列を返します。
}
さらに、 replace メソッドはパターン内の部分式を置換することもできます。 次の例は、文字列内の単語の各ペアを交換する方法を示しています。
Function ReplaceDemo(){
var r, re; // 変数を宣言します。
var ss = "スペインの雨は主に平地に降ります。";
re = /(S )(s )(S )/g; // 正規表現パターンを作成します。
r = ss.replace(re, "$3$2$1"); // 各単語のペアを入れ替えます。
Return(r); // 結果の文字列を返します。
}

次の例 (JScript 5.5 以降で実行) は、華氏から摂氏への変換を実行し、関数を replaceText として使用する方法を示します。この関数がどのように機能するかを確認するには、数値の後に「F」が続く文字列を渡します (例: 「水は 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("水は32°Fで凍り、212°Fで沸騰します。"));

jsは実際にはそうではありません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 を検証するもう 1 つの簡単な方法:
ブラウザのアドレス バーに
と入力します javascript:alert("abcabcabc".replace(new RegExp("a","gm"),"ad"))
これの方が簡単です;)、複数行の場合に便利かどうかはわかりません
orgStr.replace(new RegExp(findStr, 'g'), replaceStr)
全部置換できるはずです
正規表現を使用しない場合、
orgStr.replace(findStr, replaceStr) は最初のもののみを置換できます
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。