js实现C#的StringBuilder效果完整实例


Posted in Javascript onDecember 22, 2015

本文实例讲述了js实现C#的StringBuilder效果。分享给大家供大家参考,具体如下:

/*
  ##################### DO NOT MODIFY THIS HEADER #####################
  # Title: StringBuilder Class                    #
  # Description: Simulates the C# StringBuilder Class in Javascript. #
  # Author: Adam Smith                        #
  # Email: ibulwark@hotmail.com                    #
  # Date: November 12, 2006                      #
  #####################################################################
*/
// Simulates the C# StringBuilder Class in Javascript.
// Parameter["stringToAdd"] - The string to add. 
StringBuilder = function(stringToAdd)
{  
  var h = new Array();
  if(stringToAdd){h[0] = stringToAdd;} 
  this.Append = Append;
  this.AppendLine = AppendLine;
  this.ToString = ToString;
  this.Clear = Clear;
  this.Length = Length;
  this.Replace = Replace;
  this.Remove = Remove;
  this.Insert = Insert;
  this.GetType = GetType;   
  // Appends the string representation of a specified object to the end of this instance.
  // Parameter["stringToAppend"] - The string to append. 
  function Append(stringToAppend)
  {
    h[h.length] = stringToAppend;
  } 
  // Appends the string representation of a specified object to the end of this instance with a carriage return and line feed.
  // Parameter["stringToAppend"] - The string to append. 
  function AppendLine(stringToAppend)
  {
    h[h.length] = stringToAppend;
    h[h.length] = "\r\n";
  } 
  // Converts a StringBuilder to a String.
  function ToString()
  {
    if(!h){ return ""; }
    if(h.length<2){ return (h[0])?h[0]:""; }
    var a = h.join('');
    h = new Array();
    h[0] = a;
    return a;
  }
  // Clears the StringBuilder
  function Clear()
  {
    h = new Array();
  }
  // Gets the StringBuilder Length
  function Length()
  {
    if(!h){return 0;}
    if(h.length<2){ return (h[0])?h[0].length:0; }
    var a = h.join('');
    h = new Array();
    h[0] = a;
    return a.length;
  }
  // Replaces all occurrences of a specified character or string in this instance with another specified character or string.
  // Parameter["oldValue"] - The string to replace. 
  // Parameter["newValue"] - The string that replaces oldValue. 
  // Parameter["caseSensitive"] - True or false for case replace.
  // Return Value - A reference to this instance with all instances of oldValue replaced by newValue.
  function Replace(oldValue, newValue, caseSensitive)
  {
    var r = new RegExp(oldValue,(caseSensitive==true)?'g':'gi');
    var b = h.join('').replace(r, newValue);
    h = new Array();
    h[0] = b;
    return this;
  }
  // Removes the specified range of characters from this instance.
  // Parameter["startIndex"] - The position where removal begins. 
  // Parameter["length"] - The number of characters to remove.
  // Return Value - A reference to this instance after the excise operation has occurred.
  function Remove(startIndex, length)
  {    
    var s = h.join('');
    h = new Array();
    if(startIndex<1){h[0]=s.substring(length, s.length);}
    if(startIndex>s.length){h[0]=s;}
    else
    {
      h[0]=s.substring(0, startIndex); 
      h[1]=s.substring(startIndex+length, s.length);
    }
    return this;
  }
  // Inserts the string representation of a specified object into this instance at a specified character position.
  // Parameter["index"] - The position at which to insert.
  // Parameter["value"] - The string to insert. 
  // Return Value - A reference to this instance after the insert operation has occurred.
  function Insert(index, value)
  {
    var s = h.join('');
    h = new Array();
    if(index<1){h[0]=value; h[1]=s;}
    if(index>=s.length){h[0]=s; h[1]=value;}
    else
    {
      h[0]=s.substring(0, index); 
      h[1]=value; 
      h[2]=s.substring(index, s.length);
    }
    return this;
  }
  // Gets the type
  function GetType()
  {
    return "StringBuilder";
  }
};

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
Js 获取HTML DOM节点元素的方法小结
Apr 24 Javascript
javascript中的array数组使用技巧
Jan 31 Javascript
jquery.validate使用攻略 第五步 正则验证
Jul 01 Javascript
jQuery EasyUi实战教程之布局篇
Jan 26 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
Jun 15 Javascript
浅谈js算法和流程控制
Dec 29 Javascript
用原生js做单页应用
Jan 17 Javascript
10个经典的网页鼠标特效代码
Jan 09 Javascript
解决vue单页使用keep-alive页面返回不刷新的问题
Mar 13 Javascript
webpack 如何解析代码模块路径的实现
Sep 04 Javascript
微信小程序实现组件顶端固定或底端固定效果(不随滚动而滚动)
Apr 09 Javascript
AngularJS实现多级下拉框
Mar 25 Javascript
JavaScript判断对象是否为数组
Dec 22 #Javascript
javascript中类的定义方式详解(四种方式)
Dec 22 #Javascript
jquery获取select选中值的方法分析
Dec 22 #Javascript
JS设置下拉列表框当前所选值的方法
Dec 22 #Javascript
点评js异步加载的4种方式
Dec 22 #Javascript
JS模拟按钮点击功能的方法
Dec 22 #Javascript
jquery插件jquery.confirm弹出确认消息
Dec 22 #Javascript
You might like
PHP 输出简单动态WAP页面
2009/06/09 PHP
php实现有趣的人品测试程序实例
2015/06/08 PHP
PHP打印输出函数汇总
2016/08/28 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
2017/07/13 PHP
微信支付之JSAPI公众号支付详解
2019/05/15 PHP
怎么用javascript进行拖拽
2006/07/20 Javascript
javascript 面向对象编程 万物皆对象
2009/09/17 Javascript
显示js对象所有属性和方法的函数
2009/10/16 Javascript
javascript一个无懈可击的实例化XMLHttpRequest的方法
2010/10/13 Javascript
游览器中javascript的执行过程(图文)
2012/05/20 Javascript
让JavaScript和其它资源并发下载的方法
2014/10/16 Javascript
浅谈js中的延迟执行和定时执行
2016/05/31 Javascript
angularjs 中$apply,$digest,$watch详解
2016/10/13 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
2017/06/22 Javascript
JS点击缩略图整屏居中放大图片效果
2017/07/04 Javascript
bootstrap多层模态框滚动条消失的问题
2017/07/21 Javascript
微信小程序实现顶部普通选项卡效果(非swiper)
2020/06/19 Javascript
JS表单传值和URL编码转换
2018/03/03 Javascript
Vue SSR 组件加载问题
2018/05/02 Javascript
layui使用templet格式化表格数据的方法
2019/09/16 Javascript
react基本安装与测试示例
2020/04/27 Javascript
jQuery+ThinkPHP实现图片上传
2020/07/23 jQuery
原生JS实现多条件筛选
2020/08/19 Javascript
Python实现Windows上气泡提醒效果的方法
2015/06/03 Python
详解Django中的ifequal和ifnotequal标签使用
2015/07/16 Python
Django CBV与FBV原理及实例详解
2019/08/12 Python
用python拟合等角螺线的实现示例
2019/12/27 Python
PyCharm第一次安装及使用教程
2020/01/08 Python
pycharm运行程序时看不到任何结果显示的解决
2020/02/21 Python
HTML5计时器小例子
2013/10/15 HTML / CSS
匈牙利墨盒和碳粉购买网站:CDRmarket
2018/04/14 全球购物
Currentbody澳大利亚:美容仪专家
2019/11/11 全球购物
戴尔荷兰官方网站:Dell荷兰
2020/10/04 全球购物
写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数
2016/04/13 面试题
会计专业个人自我鉴定
2014/03/21 职场文书
中国梦团日活动总结
2014/07/07 职场文书