>  기사  >  웹 프론트엔드  >  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==undefine), 정의되지 않은 경우 빈 문자열을 반환합니다.

11.var reg=new RegExp("({[" i "]})","g"), 지정된 문자열을 일치시키는 데 사용됩니다.

12.result=result.replace(reg,arguments), 바꾸기.

13.결과 반환, 대체된 문자열을 반환합니다.

14.return 이것을, 매개변수가 전달되지 않으면 문자열 자체가 반환됩니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.