ホームページ  >  記事  >  ウェブフロントエンド  >  jQuery_jquery の replace() メソッドに関する簡単な説明

jQuery_jquery の replace() メソッドに関する簡単な説明

WBOY
WBOYオリジナル
2016-05-16 15:59:192068ブラウズ

今日jqueryのソースコードを読んでいたら、今まで気づかなかった問題を発見しました。それは、replace()の第2引数が関数であることは以前から知っていた問題です。 ()は関数にできるのですが、どのように操作すればよいのかわかりません。今日ソースコードでreplace()の第2引数に使われている関数を見たときに、読みにくいと感じたので企画しました。この関数を整理するには...

文法

stringObject.replace(regexp/substr, 置換)

戻り値

正規表現の最初の一致または任意の一致を置換で置き換えることによって取得された新しい文字列を返します

replace() メソッドのパラメータ置換が関数である場合、この場合、一致するたびに関数が呼び出され、関数によって返された文字列が置換テキストとして使用されます。この関数の最初のパラメータは、パターンに一致する文字列です。次のパラメータは、パターン内の部分式に一致する文字列です。このようなパラメータは 0 個以上存在できます。次のパラメータは、一致が発生する stringObject 内の位置を宣言する整数です。最後のパラメータは stringObject 自体です。この文は w3cschool からコピーしたものですが、今の私には上記の段落がよく理解できず、自分の言葉で簡単に説明することもできないので、すべてを説明するために例を使用することしかできません。

コードをコピーします コードは次のとおりです:

var string = "abc123-ii";
string.replace(/(d)-([da-z])/g,function(str1, str2, str3, str4, str5){
console.log( str1 ) // 3-i
; console.log( str2 ) // 3 (最初のキャプチャ)
console.log(str3);//i (2 番目の非キャプチャ グループ)
console.log(str4);//5 (文字列内に出現する位置と一致します)
console.log(str5);// abc123-ii (文字列自体)
return "I";
})

上記は今日私が調べたjqueryのソースコードです

コードをコピーします コードは次のとおりです:

キャメルケース: function( string ) {
return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
}、
fcamelCase = function( all, 文字 ) {
return Letter.toUpperCase();
};

当時は理解できなかったこの機能も、今では理解できた気がします

そして、昔、いつだったかわかりませんが、replace() を使用するときに、「$1、$2」など、当時の私にとっては奇妙な記号に遭遇したことを思い出しました。 Ye Lai がこの質問に対する答えを見つけました

$1、$2、$3.... は 1、2、3.... をキャプチャすることを意味します

コードをコピーします コードは次のとおりです:

var string = "abc123-ii";
console.log(string.replace(/(d)-([da-z])/g, "$1")); // キャプチャ グループ 1(3) を使用して /(d)-([da-z] を置き換えます])/g

$& は正規表現に一致する部分文字列を表します

コードをコピーします コードは次のとおりです:

var string = "abc123-ii";
console.log(string.replace(/(d)-([da-z])/g, "$&")); // /(d を regexp に一致する文字列 (3-i) に置き換えます)-( [da-z])/g

$` は、一致する部分文字列の左側にあるテキストを表します

コードをコピーします コードは次のとおりです:

var string = "abc123-ii";
console.log(string.replace(/(d)-([da-z])/g, "$`")); // /(d)- を一致する文字列の左側のテキストに置き換えます ( abc12) ([da-z])/g

$' は、一致した部分文字列の右側にあるテキストを表します

コードをコピーします コードは次のとおりです:

var string = "abc123-ii";
console.log(string.replace(/(d)-([da-z])/g, "$'")); // /(d)-([ を一致した文字列の右側のテキストに置き換えます文字列 da-z])/g

$$ は直接 $ 記号です

コードをコピーします コードは次のとおりです:

var string = "abc123-ii";
console.log(string.replace(/(d)-([da-z])/g, "$$")); // $ 記号を使用して /(d)-([da-z])/ を置き換えますg

私はフロントエンドの初心者なので、replace() メソッドの使用方法が不明瞭です。または、このメソッドのより良い使用例があるかどうかを確認してください。 、シェアしていただければ幸いです...

以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。