JavaScript関数replace
6346 ワード
JavaScriptにおいてreplace関数は文字列置換関数として機能しており、これは強力な文字列操作関数であり、よくある文字列操作に対する推奨用法である.このエッセイはもっと深く理解します.
replace関数は2つのパラメータを受け入れ、最初のパラメータは文字列または正規表現であり、最初のパラメータは同じ文字列を受け入れることができ、また一つの関数かもしれない.
まず最初のパラメータが文字列である場合には、「I am a boy」や「replace」を多く言う必要はありません.出力は「I am a girl」です.ここで言いたいのは、最初のパラメータが正則である場合です.正規表現では、まずグローバルかどうか(大域/g)によって置換挙動が決定されます.すべての場合はすべて置換されます.大域ではないのは、最初のマッチした文字列だけを置換します.たとえば:$i(i:1-99):左から右へ正則のサブ表現にマッチするテキストを表します. ドル&:正規表現にマッチする全文本を表します. (`:スキルキーの切り替え):マッチする文字列の左側のテキストを表します. '(':シングル引用符):マッチする文字列の右側のテキストを表します. ドル:ドルの移動を表します. いくつかのSampleをください.
2:2番目のパラメータは関数です.
ECMAScript 3では、関数方式を推奨し、JavaScript 1.2に実装されています.replace方法が実行されると、毎回この関数を呼び出して、値を差し替えの新しい値として返します.
関数パラメータの規定:の最初のパラメータは、各マッチングの全文本($&)である. 中間パラメータは、サブ表現マッチング文字列であり、個数は限定されない.($i(i:1−99)) の最後から2番目のパラメータは、テキスト文字列にマッチするマッチした下付きの位置である. 最後のパラメータは文字列自体を表します. これはこの論文で述べたいreplaceの威力が強いところです.理論的なものは全部干物です.あらゆる空虚な問題を解決するために必要な実例があります.
1:文字列の最初の文字を大文字にする:
出力:I Am A Boy!
2:文字列の「張三56分、李四74分、王五92分、趙六84分」の点数をまとめて、平均点を計算して、一人当たりの平均点数の差を出力します.
張三56点(平均点20.5点以下)、李四74点(平均点2.5点以下)、王五92点(平均点15.5点を超えている)、趙六84点(平均点7.5点を超えている)
JavaScriptのreplace関数に正規の高級アプリケーションを加えると、JavaScriptのreplaceはより大きな威力を発揮します.ここでは正規の高級アプリケーションに深く入らないと断言します.
replace関数は2つのパラメータを受け入れ、最初のパラメータは文字列または正規表現であり、最初のパラメータは同じ文字列を受け入れることができ、また一つの関数かもしれない.
まず最初のパラメータが文字列である場合には、「I am a boy」や「replace」を多く言う必要はありません.出力は「I am a girl」です.ここで言いたいのは、最初のパラメータが正則である場合です.正規表現では、まずグローバルかどうか(大域/g)によって置換挙動が決定されます.すべての場合はすべて置換されます.大域ではないのは、最初のマッチした文字列だけを置換します.たとえば:
"Ha Ha".replace(/\b\w+\b/g, "He") // He He
"Ha Ha".replace(/\b\w+\b/, "He") //He Ha
1: :
正規のreplaceに対して特別なマーカーを予約しました."boy & girl".replace(/(\w+)\s*&\s*(\w+)/g,"$2 & $1") //girl & boy
"boy".replace(/\w+/g,"$&-$&") // boy-boy
"javascript".replace(/script/,"$& != $`") //javascript != java
"javascript".replace(/java/,"$&$' is ") // javascript is script
2:2番目のパラメータは関数です.
ECMAScript 3では、関数方式を推奨し、JavaScript 1.2に実装されています.replace方法が実行されると、毎回この関数を呼び出して、値を差し替えの新しい値として返します.
関数パラメータの規定:
1:文字列の最初の文字を大文字にする:
String.prototype.capitalize = function(){
return this.replace( /(^|\s)([a-z])/g , function(m,p1,p2){ return p1+p2.toUpperCase();
} );
};
console.log("i am 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;
function f(){
var n = parseFloat(arguments[1]);
return n + " " + "(" + ((n > avg) ? (" " + (n - avg)) :
(" " + (avg - n))) + " )";
}
var result = s.replace(/(\d+) /g, f);
console.log(result);
出力:張三56点(平均点20.5点以下)、李四74点(平均点2.5点以下)、王五92点(平均点15.5点を超えている)、趙六84点(平均点7.5点を超えている)
JavaScriptのreplace関数に正規の高級アプリケーションを加えると、JavaScriptのreplaceはより大きな威力を発揮します.ここでは正規の高級アプリケーションに深く入らないと断言します.