JavaScript中replace
3720 ワード
ECMAScript v 3 規定する メソッドのパラメータ replace ment 文字列ではなく関数でも大丈夫です.この場合、各マッチは関数を呼び出します.戻りの文字列は置換テキストとして使用されます.関数の最初のパラメータはマッチングモードの文字列です.次のパラメータはモードのサブ表現にマッチする文字列です. 0 このようなパラメータが複数あります.次のパラメータは整数です. ストリングスObject に表示される位置です.最後のパラメータは ストリングスObject 自分自身
strigObject.replace(regexp/substr,replace)
JavaScriptにおいてreplace関数は文字列置換関数として機能しており、これは強力な文字列操作関数であり、よくある文字列操作に対する推奨用法である.このエッセイはもっと深く理解します.
replace関数は2つのパラメータを受け入れ、最初のパラメータは文字列または正規表現であり、最初のパラメータは同じ文字列を受け入れることができ、また一つの関数かもしれない.
まず最初のパラメータが文字列であるために、私たちはこれ以上話す必要がありません. ラム a. boy".replace("boy","girl"),出力:"I ラム a. ガールここで言いたいのは、最初のパラメータが正則である場合です.正規表現では、まずグローバルかどうか(大域/g)によって置換挙動が決定されます.すべての場合はすべて置換されます.大域ではないのは、最初のマッチした文字列だけを置換します.たとえば:
?
「は」 Ha".replace(/\b\w+\b/g, 「He」) // He He
「は」 Ha".replace(/\b\w+\b/, 「He」) //He Ha
1:2番目のパラメータは文字列:
正規のreplaceに対して特別なマーカーを予約しました.$i (イ:1-99) : 左から右への正規表現にマッチするテキストを表します. ドル&:正規表現にマッチする全文本を表します. (`:スキルキーの切り替え):マッチする文字列の左側のテキストを表します. '(':シングル引用符):マッチする文字列の右側のテキストを表します. ドル:ドルの移動を表します. いくつかのデモが来ます.
?
「boy」 & girl".replace(/)\s*&\s*(\w+)/g,"2 & $1") //ガール & boy
「boy」.replace(/\w+/g,「$&-」) // boy-boy
「javascript」.replace(/script/、「$ != $`") //javascript != java
「javascript」.replace(/java/、「$」) is ") // javascript is スクリプト
2:2番目のパラメータは関数です.
ECMAScript 3では、関数方式を推奨し、JavaScript 1.2に実装されています.replace方法が実行されると、毎回この関数を呼び出して、値を差し替えの新しい値として返します.
関数パラメータの規定:最初のパラメータは各マッチングの全文本($). 中間パラメータはサブ表現マッチング文字列であり、数は制限されません. $i (i:1-99) 最後から2番目のパラメータは、テキスト文字列にマッチするマッチした下付きの位置です. 最後のパラメータは文字列自体を表します. これはこの論文で述べたいreplaceの威力が強いところです.理論的なものは全部干物です.あらゆる空虚な問題を解決するために必要な実例があります.
1:文字列の最初の文字を大文字にする:
?
String.prototype.cportalize = function(){
return this.replace /(^|\s)([a-z])/g , function(m,p 1,p 2){ return p 1+p 2.toUpperCase()
} );
}
consolie.log("i" ラム a. boy !「capitalize()
出力:I Am A Boy !
2:文字列の「張三56分」に対して、 李四74分、 王五92分、 趙六84点」の点数をまとめて、平均点を算出して、一人当たりの平均点の差を出力します.
?
var s = "張三56分です 李四74分、 王五92分、 趙六84分"
var a. = s.match(/\d+/g)
var sum = 0;
for(var) i = 0 ; i < a.length i+){
sum += parseFloat(a[i])
)
var avg = sum / a.length
機能 f(){
var n = parseFloat(argments[1]);
return n + 「分」 + 「(」 + (n) > avg ? (「平均以上」 + (n - avg) :
(「平均以下」 + (avg - n) + 「分」
)
var レスリング = s.replace(/(\d+)分/g、 f)
consolone.logt;
出力:
張三56点(平均点20.5点以下)、 李四74点(平均点より2.5点低い)、 王五92点(平均点を超えて15.5点)、 趙六84点(平均点を超えて7.5点)
JavaScriptのreplace関数に正規の高級アプリケーションを加えると、JavaScriptのreplaceはより大きな威力を発揮します.ここでは正規の高級アプリケーションに深く入らないと断言します.
strigObject.replace(regexp/substr,replace)
var str="abc123";
str=str.replace(/[A-Za-z]{3}|[0-9]{3}/g,function(a){
switch(a){
case "abc":return "ABC";
case "123":return "One Two Three";
}
});
alert(str);
ABCOne 私 ThreJavaScriptにおいてreplace関数は文字列置換関数として機能しており、これは強力な文字列操作関数であり、よくある文字列操作に対する推奨用法である.このエッセイはもっと深く理解します.
replace関数は2つのパラメータを受け入れ、最初のパラメータは文字列または正規表現であり、最初のパラメータは同じ文字列を受け入れることができ、また一つの関数かもしれない.
まず最初のパラメータが文字列であるために、私たちはこれ以上話す必要がありません. ラム a. boy".replace("boy","girl"),出力:"I ラム a. ガールここで言いたいのは、最初のパラメータが正則である場合です.正規表現では、まずグローバルかどうか(大域/g)によって置換挙動が決定されます.すべての場合はすべて置換されます.大域ではないのは、最初のマッチした文字列だけを置換します.たとえば:
?
「は」 Ha".replace(/\b\w+\b/g, 「He」) // He He
「は」 Ha".replace(/\b\w+\b/, 「He」) //He Ha
1:2番目のパラメータは文字列:
正規のreplaceに対して特別なマーカーを予約しました.
?
「boy」 & girl".replace(/)\s*&\s*(\w+)/g,"2 & $1") //ガール & boy
「boy」.replace(/\w+/g,「$&-」) // boy-boy
「javascript」.replace(/script/、「$ != $`") //javascript != java
「javascript」.replace(/java/、「$」) is ") // javascript is スクリプト
2:2番目のパラメータは関数です.
ECMAScript 3では、関数方式を推奨し、JavaScript 1.2に実装されています.replace方法が実行されると、毎回この関数を呼び出して、値を差し替えの新しい値として返します.
関数パラメータの規定:
1:文字列の最初の文字を大文字にする:
?
String.prototype.cportalize = function(){
return this.replace /(^|\s)([a-z])/g , function(m,p 1,p 2){ return p 1+p 2.toUpperCase()
} );
}
consolie.log("i" ラム a. boy !「capitalize()
出力:I Am A Boy !
2:文字列の「張三56分」に対して、 李四74分、 王五92分、 趙六84点」の点数をまとめて、平均点を算出して、一人当たりの平均点の差を出力します.
?
var s = "張三56分です 李四74分、 王五92分、 趙六84分"
var a. = s.match(/\d+/g)
var sum = 0;
for(var) i = 0 ; i < a.length i+){
sum += parseFloat(a[i])
)
var avg = sum / a.length
機能 f(){
var n = parseFloat(argments[1]);
return n + 「分」 + 「(」 + (n) > avg ? (「平均以上」 + (n - avg) :
(「平均以下」 + (avg - n) + 「分」
)
var レスリング = s.replace(/(\d+)分/g、 f)
consolone.logt;
出力:
張三56点(平均点20.5点以下)、 李四74点(平均点より2.5点低い)、 王五92点(平均点を超えて15.5点)、 趙六84点(平均点を超えて7.5点)
JavaScriptのreplace関数に正規の高級アプリケーションを加えると、JavaScriptのreplaceはより大きな威力を発揮します.ここでは正規の高級アプリケーションに深く入らないと断言します.