我们接着上一篇的继续,在上一篇我们完成了工具库的架构,本文扩展字符串去空格的方法, 一共有3个

1,trimLeft: 去除字符串左边的空格

2,trimRight: 去除字符串右边的空格

3,trim: 去除字符串两边的空格

 1 ; (function (window, undefined) {
 2     function init(obj, s) {
 3         if (s !== null && s !== undefined) {
 4             if (typeof s === 'string') {
 5                 obj.s = s;
 6             } else {
 7                 obj.s = s.toString();
 8             }
 9         } else {
10             obj.s = s;
11         }
12     }
13
14     function G(s) {
15         init(this, s);
16     }
17
18     function GhostWu(s) {
19         return new G(s);
20     }
21
22     var sProto = String.prototype;
23     G.prototype = {
24         constructor: G,
25         capitalize: function () {
26             return new this.constructor(this.s.slice(0, 1).toUpperCase() + this.s.substring(1).toLowerCase());
27         },
28         trimLeft : function () {
29             var s;
30             if (sProto.trimLeft === 'undefined')
31                 s = this.s.trimLeft();
32             else
33                 s = this.s.replace(/^\s+/g, '');
34             return new this.constructor(s);
35         },
36         trimRight : function () {
37             var s;
38             if (sProto.trimRight === 'undefined')
39                 s = this.s.trimRight();
40             else
41                 s = this.s.replace(/\s+$/g, '');
42             return new this.constructor(s);
43         },
44         trim : function () {
45             var s;
46             if (typeof sProto.trim === 'undefined') {
47                 s = this.s.replace(/^\s+|\s+$/g, '');
48             } else {
49                 s = this.s.trim();
50             }
51             return new this.constructor(s);
52         }
53     };
54
55     window.G = GhostWu;
56 })(window, undefined);

alert( '(' + G( ' ghostwu ' ).s + ')' );
alert( '(' + G( ' ghostwu ' ).trim().s + ')' );
alert( '(' + G( ' ghostwu ' ).trimLeft().trimRight().s + ')' );

转载于:https://www.cnblogs.com/ghostwu/p/7401834.html

[js高手之路] 跟GhostWu一起封装一个字符串工具库-扩展trim,trimLeft,trimRight方法(2)...相关推荐

  1. [js高手之路] 跟GhostWu一起封装一个字符串工具库-扩展trim,trimLeft,trimRight方法(2)

    我们接着上一篇的继续,在上一篇我们完成了工具库的架构,本文扩展字符串去空格的方法, 一共有3个 1,trimLeft: 去除字符串左边的空格 2,trimRight: 去除字符串右边的空格 3,tri ...

  2. [js高手之路] 跟GhostWu一起封装一个字符串工具库-扩展字符串位置方法(4)

    本文,我们接着之前的框架继续扩展,这次扩展了一共有5个与字符串位置相关的方法 between( left, right ) 返回两个字符串之间的内容, 如果第二个参数没有传递,返回的是找到的第一个参数 ...

  3. [js高手之路]打造通用的匀速运动框架

    本文,是接着上文[js高手之路]匀速运动与实例实战(侧边栏,淡入淡出)继续的,在这篇文章的最后,我们做了2个小实例:侧边栏与改变透明度的淡入淡出效果,本文我们把上文的animate函数,继续改造,让他 ...

  4. [js高手之路]原型对象(prototype)与原型链相关属性与方法详解

    一,instanceof: instanceof检测左侧的__proto__原型链上,是否存在右侧的prototype原型. 我在之前的两篇文章 [js高手之路]构造函数的基本特性与优缺点 [js高手 ...

  5. [js高手之路] es6系列教程 - 迭代器与生成器详解

    什么是迭代器? 迭代器是一种特殊对象,这种对象具有以下特点: 1,所有对象都有一个next方法 2,每次调用next方法,都会返回一个对象,该对象包含两个属性,一个是value, 表示下一个将要返回的 ...

  6. [js高手之路]html5 canvas动画教程 - 下雪效果

    利用canvas,实现一个下雪的效果,我们先预览下效果: 我们先分析下这个效果: 1,随机产生雪花 2,雪花的产生不是同时产生,而是有先后顺序的 3,雪花怎么表示 4,怎么源源不断的下雪 5,雪花有大 ...

  7. [js高手之路]设计模式系列课程-发布者,订阅者重构购物车

    发布者订阅者模式,是一种很常见的模式,比如: 一.买卖房子 生活中的买房,卖房,中介就构成了一个发布订阅者模式,买房的人,一般需要的是房源,价格,使用面积等信息,他充当了订阅者的角色 中介拿到卖主的房 ...

  8. [js高手之路]深入浅出webpack教程系列9-打包图片(file-loader)用法

    [js高手之路]深入浅出webpack教程系列索引目录: [js高手之路]深入浅出webpack教程系列1-安装与基本打包用法和命令参数 [js高手之路]深入浅出webpack教程系列2-配置文件we ...

  9. [js高手之路]从原型链开始图解继承到组合继承的产生

    于javascript原型链的层层递进查找规则,以及原型对象(prototype)的共享特性,实现继承是非常简单的事情 一.把父类的实例对象赋给子类的原型对象(prototype),可以实现继承 1 ...

  10. [js高手之路] html5 canvas系列教程 - 线条样式(lineWidth,lineCap,lineJoin,setLineDash)

    上文,写完弧度与贝塞尔曲线[js高手之路] html5 canvas系列教程 - arcTo(弧度与二次,三次贝塞尔曲线以及在线工具),本文主要是关于线条的样式设置 lineWidth: 设置线条的宽 ...

最新文章

  1. 2542513 - AS Java fails to start - Initialization of destination UMEBackendConnection failed
  2. PHP中的PathInfo
  3. 关于版本号:alpha、beta、rc、stable
  4. android 解决getColor()方法过时
  5. apicloud使用指南
  6. c++ cdi+示例_C ++中带有示例的本地类
  7. qt 5.0中HeaderView的setResiziMode无法使用的问题
  8. 上海GDD(谷歌开发者大会),第一天总结
  9. MFC CListCtrl 将一个列表的选中项添加到另一个列表
  10. java 日期转中文_java年月日转中文
  11. 软件过程管理课程知识点总结
  12. playwright之贴吧签到
  13. APPLE 知识模块初步设计
  14. 科技「垦荒」,AI护虎
  15. pdf合并、生成目录大纲
  16. 你知道各调的特点吗?
  17. php画拼图滑动验证,滑动拼图验证
  18. 安卓手机APP进行自动化点击软件详解
  19. USB音频编解码芯片电路方案设计(原理图)|TYPEC音频方案|TYPEC扩展坞方案|USB音频方案
  20. 【每日随笔】记录完整的劳动仲裁过程 一 ( 赢火虫律师平台 | 赢火虫手机端跟进案件信息 | 等待律师接单 | 提交信息给律师 )

热门文章

  1. Spring Cloud Data Flow 2.0.1 GA 发布
  2. 一文读懂一台计算机是如何把数据传送给另外一台计算机的
  3. day14:磁盘管理df/du/fdisk/parted命令
  4. 【转载】【原创】贵在,难在,成在
  5. ibatis #于 $区别
  6. Android 中AlarmManager升级4.2
  7. HttpRequest类
  8. Windows Phone实用开发技巧(33):不重启程序切换当前语言
  9. 05.日志框架与Spring Boot日志全篇
  10. 初探ASP.NET Mvc5+EF7的美妙旅程