Maison > interface Web > js tutoriel > le corps du texte

JavaScript simule les compétences string_javascript formatées en C#

WBOY
Libérer: 2016-05-16 15:42:17
original
1031 Les gens l'ont consulté

JS simule l'opération de formatage de chaîne C#

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

js implémente la fonction de traitement de chaîne format() similaire à c# :

Ceux qui connaissent C# doivent savoir qu'il existe une méthode telle que format(). Imitons-la et implémentons cette fonction en JavaScript.

L'exemple de code est le suivant :

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); 
Copier après la connexion

Le code ci-dessus obtient l'effet souhaité. Voici une introduction à son processus de mise en œuvre :

1.Principe de mise en œuvre :

Le principe est relativement simple. Faisons court. Pour plus de détails, veuillez vous référer aux commentaires du code. Utilisez des expressions régulières pour rechercher les chaînes à remplacer, puis remplacez ces chaînes par le contenu spécifié. Dans le code, une partie du contenu spécifié est des chaînes littérales et d'autres sont des valeurs d'attribut d'objet.

2. Commentaires du code :

1.String.prototype.format=function(args){{}), ajoutez le format de la méthode d'instance à l'objet String via l'objet prototype. Cette méthode est utilisée pour traiter les chaînes.

2.if(arguments.length>0), si le nombre de paramètres passés est supérieur à 0.

3.var result=this, attribuez la référence de this à la variable result.

4.if(arguments.length==1&&typeof(args)=="object"), utilisé pour déterminer si le paramètre transmis est un littéral d'objet.

5.for(var key in args), parcourez les attributs dans le littéral de l'objet.

6.var reg=new RegExp("({" key "})","g"), utilisé pour correspondre à la chaîne spécifiée.

7.result=result.replace(reg,args[key]), remplacez la chaîne correspondante par la valeur de l'attribut.

8.else{}, si ce qui est passé n'est pas un objet littéral.

9.for(var i=0;i

10.if(arguments==undefined), s'il n'est pas défini, renvoie une chaîne vide.

11.var reg=new RegExp("({[" i "]})","g"), utilisé pour correspondre à la chaîne spécifiée.

12.result=result.replace(reg,arguments), remplacer.

13.return result, renvoie la chaîne remplacée.

14.renvoyez ceci, si aucun paramètre n'est passé, la chaîne elle-même est renvoyée.

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal