ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript は C# 形式の string_javascript スキルをシミュレートします

JavaScript は C# 形式の string_javascript スキルをシミュレートします

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

JS は C# 文字列フォーマット操作をシミュレートします

/***
** 功能: 字符串格式化替换操作
***/
String.prototype.format = function () {
 var args = arguments;
 return this.replace(/\{(\d+)\}/g,
 function (m, i) {
  return args[i];
 });
}

js は、C# と同様の文字列処理関数 format() を実装します。

C# に詳しい方は format() というメソッドがあることをご存知かと思いますが、それを真似してこの関数を JavaScript で実装してみましょう。

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

String.prototype.format=function(args){ 
 if(arguments.length>0){ 
 var result=this; 
 if(arguments.length==1&&typeof(args)=="object"){ 
  for(var key in args){ 
  var reg=new RegExp("({"+key+"})","g"); 
  result=result.replace(reg, args[key]); 
  } 
 } 
 else{ 
  for(var i=0;i<arguments.length;i++){ 
  if(arguments[i]==undefined){ 
   return ""; 
  } 
  else{ 
   var reg=new RegExp ("({["+i+"]})","g"); 
   result = result.replace(reg, arguments[i]); 
  } 
  } 
 } 
 return result; 
 } 
 else{ 
 return this; 
 } 
}
var fistStr="{0}欢迎您,希望大家能够得到想要的{1}";
var secondStr="{webName}欢迎您,希望大家能够得到想要的{favoriate}";
var firstOut=fistStr.format("","东西");
var secondOut=secondStr.format({webName:"",favoriate:"东西"});
console.log(firstOut);
console.log(secondOut); 

上記のコードは、私たちが望む効果を実現します。ここでは、その実装プロセスを紹介します。

1. 実装原則:

原理は比較的簡単です。詳しくはコードのコメントを参照してください。正規表現を使用して置換する文字列を検索し、コード内で指定された内容の一部は文字列リテラルであり、一部はオブジェクト属性値です。

2. コードのコメント:

1.String.prototype.format=function(args){{})、プロトタイプ オブジェクトを通じてインスタンス メソッド形式を String オブジェクトに追加します。このメソッドは文字列を処理するために使用されます。

2.if(arguments.length>0)、渡されたパラメータの数が 0 より大きい場合。

3.var result=this、thisの参照を変数resultに代入します。

4.if(arguments.length==1&&typeof(args)=="object")、渡されたパラメータがオブジェクト リテラルかどうかを判断するために使用されます。

5.for(var key in args)、オブジェクト リテラル内の属性を走査します。

6.var reg=new RegExp("({" key "})","g")、指定された文字列と一致するために使用されます。

7.result=result.replace(reg,args[key])、一致する文字列を属性値に置き換えます。

8.else{}、渡されたものがオブジェクト リテラルでない場合。

9.for(var i=0;i

10.if(arguments==unknown)、未定義の場合は空の文字列を返します。

11.var reg=new RegExp("({[" i "]})","g")、指定された文字列と一致するために使用されます。

12.result=result.replace(reg,arguments)、置換します。

13.return result、置換された文字列を返します。

14.これを返します。パラメータが渡されない場合は、文字列自体が返されます。

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