ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript の文字列置換に関する基礎知識

JavaScript の文字列置換に関する基礎知識

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

replace() メソッドは、文字列内の一部の文字を他の文字に置き換えたり、正規表現に一致する部分文字列を置き換えたりするために使用されます。

構文: string.replace(subStr/reg,replaceStr/function)

最初のパラメータには文字列の部分文字列または正規表現を指定できます。2 番目のパラメータには文字列または処理メソッドを指定できます。

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

document.write('1234'.replace(1, 'X'));us 結果が取得できます: >
document.write('1214'.replace(1, 'X')); 結果は次のようになると予想されました: が部分文字列である場合、replace は最初の一致のみを置換し、検索を停止します

通常の書き込みに変更します コードをコピーします
コードは次のとおりです:

document .write('1214'.replace(/1/g, 'X')); この時点で、期待どおりの結果が得られます: X2X4

関数がどのように書かれているか見てみましょう コードをコピーします
コードは次のとおりです:

var r = 'abcd'.replace(/w /g, function() {

この時点で、期待される結果が表示されます: XXXX、すべての文字が次のように置き換えられます。 コードは次のとおりです。


var t = document.getElementById('t ');
String.prototype.deentityfy = function() {
varentity = {
quot: '"',
lt: '<',
gt: '> '

};

document.write('<">'.deentityfy());



コードをコピー


コードは次のとおりです:

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('==================== == =======
')
結果



コードをコピー

コードは次のとおりです:a2a2
a21b21c2
===========================
b2
b2

a21b21c2
===========================
c2
c2

a21b21c2
============================
XXX

予想通り, これで、関数にどのようなパラメータがあるのか​​を理解できるようになりました。もちろん、連想配列、関数の即時実行、および引数オブジェクトについて理解する必要があります。すべてのパラメータを 1 つの文にまとめます。単語の最初の文字を大文字にする方法を知っていますか?



コードをコピー

コードは次のとおりです:// メソッドはたくさんありますが、これは今作った理論を検証するためだけにわざと面倒な書き方をした var sense = 'i love you'; var upper = speech.replace(/(w)w*b/g, function (a,b) {
return b.toUpperCase() a.substring(1);
});
document.write(upper); コード


は次のとおりです。


//実際にはこのように書くだけで十分です
var sense = 'i love you';
var upper = text. replace(/w b/g, function( a) {
;
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。