コードをコピー
コードは次のとおりです:
string.prototype.deentityfy = function(){
var entity = {
a: 'a'、
b: 'b'、
c: 'c'
};
return function() {
return this.replace(/1([^12])2/g, function(a, b) {
for (var i = 0; i document.write(arguments[i] '
');
document.write('=========== ==============
');
var r =
return typeof r === 'string' ?
}); //置換の終わり
};
} ();
document.write('1a21b21c2'.deentityfy());
これ样,我们ハンドル方法のパラメータ都打印,看看结果出来是什么
a2
a
a21b21c2
===========================
b2
a21b21c2
===== ======================
c2
c
a21b21c2
========== =================
ABC
很奇怪对不对,最終的<”>是方法的結果,很正确,予定通りの結果が得られました。関数のパラメータ部分を参照してください。
関数は 3 回使用され、正確に一致する回数になり、毎回一致する文字列が配置されます。
次回使用する時の気候方法には 4 つのパラメータがあります
第一个パラメータ很简单、是適合字符串
第二很诡异,不过每都看一遍不得得,第二パラメータ是表表式括弧内的適合内容
3 番目のパラメータとすぐに思い浮かぶのは、文字列内の一致するインデックスです
第 4 のパラメータは原字記号です
很神奇对不对,但不是就是这样了呢,我们再写一试试
var r = '1a21b21c2'.replace(/1w2/ g, function() {
for (var i = 0; i
document.write(arguments[i] '
');
}
document.write('==========================
')
return 'X ';
});
document.write(r);
和前例子很像,只是简单的全部適合项替荢了X,看看结果
a2
a21b21c2===========================
b2
a21b21c2
===========================
c2
a21b21c2
===========================
XXX
出乎意料但し、結果は予想通りですが、パラメータ数が 1 つだけ、2 番目のパラメータは見当たりません、厳密に何かが異なります — 正表式中、同様に多くの括弧番号が見当たりません、上の 1 つの例中、2 番目のパラメータが表示されていますパラメータ適切である括弧内の適合项,是不是第二パラメータ就是表表式中括号内の適合项呢,我们把括号加回来验证一下
复制代码代码如下:
var r = '1a21b21c2'.replace(/1(w2)/g, function() {
for (var i = 0; i < argument.length; i ) {
document.write(arguments[i] '
');
}
document.write('==================== == =======
')
結果
コードをコピー
a21b21c2===========================
b2
b2
a21b21c2
===========================
c2
c2
a21b21c2
============================
XXX
予想通り, これで、関数にどのようなパラメータがあるのかを理解できるようになりました。もちろん、連想配列、関数の即時実行、および引数オブジェクトについて理解する必要があります。すべてのパラメータを 1 つの文にまとめます。単語の最初の文字を大文字にする方法を知っていますか?
コードをコピー
return b.toUpperCase() a.substring(1); });
document.write(upper); コード
は次のとおりです。
//実際にはこのように書くだけで十分です
var sense = 'i love you';
var upper = text. replace(/w b/g, function( a) {