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 相关文章推荐
javascript读取xml实现javascript分页
Dec 13 Javascript
深入剖析JavaScript中的枚举功能
Mar 06 Javascript
jqGrid表格应用之新增与删除数据附源码下载
Dec 02 Javascript
深入理解Node.js 事件循环和回调函数
Nov 02 Javascript
BootStrap实现响应式布局导航栏折叠隐藏效果(在小屏幕、手机屏幕浏览时自动折叠隐藏)
Nov 30 Javascript
小发现之浅谈location.search与location.hash的问题
Jun 23 Javascript
js获取元素的偏移量offset简单方法(必看)
Jul 05 Javascript
微信小程序wx:for循环的实例详解
Oct 07 Javascript
JS字典Dictionary类定义与用法示例
Feb 01 Javascript
vuejs移动端实现div拖拽移动
Jul 25 Javascript
通过实例解析JavaScript常用排序算法
Sep 02 Javascript
vue 实现图片懒加载功能
Dec 31 Vue.js
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.ini实现PHP文件上传功能
2014/11/27 PHP
ThinkPHP5.0 图片上传生成缩略图实例代码说明
2018/06/20 PHP
PDO::lastInsertId讲解
2019/01/29 PHP
Jquery Ajax学习实例7 Ajax所有过程事件分析示例
2010/03/23 Javascript
js压缩工具 yuicompressor 使用教程
2010/03/31 Javascript
jquery zTree异步加载简单实例分享
2013/02/05 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/25 Javascript
javascript操作数组详解
2014/12/17 Javascript
老生常谈Javascript中的原型和this指针
2016/10/09 Javascript
JS中用try catch对代码运行的性能影响分析
2016/12/26 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
2016/12/30 Javascript
详解使用Node.js 将txt文件转为Excel文件
2017/07/05 Javascript
react-native封装插件swiper的使用方法
2018/03/20 Javascript
js中实例与对象的区别讲解
2019/01/21 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
vue+springboot+element+vue-resource实现文件上传教程
2020/10/21 Javascript
[01:03:41]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第一场 12.17
2020/12/19 DOTA
详解python的几种标准输出重定向方式
2016/08/15 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
pycharm重命名文件的方法步骤
2019/07/29 Python
使用coverage统计python web项目代码覆盖率的方法详解
2019/08/05 Python
Pytorch 使用CNN图像分类的实现
2020/06/16 Python
浅谈anaconda python 版本对应关系
2020/10/07 Python
Django实现随机图形验证码的示例
2020/10/15 Python
利用Python实现最小二乘法与梯度下降算法
2021/02/21 Python
HTML5 Canvas实现烟花绽放特效
2016/03/02 HTML / CSS
英国顶级足球鞋的领先零售商:Lovell Soccer
2019/08/27 全球购物
ORACLE第二个十问
2013/12/14 面试题
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的
2015/07/24 面试题
优秀班干部事迹材料
2014/01/26 职场文书
《夸父追日》教学反思
2014/02/26 职场文书
西式结婚主持词
2014/03/14 职场文书
低碳环保演讲稿
2014/08/28 职场文书
python控制台打印log输出重复的解决方法
2021/05/14 Python
python生成可执行exe控制Microsip自动填写号码并拨打功能
2021/06/21 Python
讲解Python实例练习逆序输出字符串
2022/05/06 Python