[js高手之路] 跟GhostWu一起封装一个字符串工具库-扩展trim,trimLeft,trimRight方法(2)
我们接着上一篇的继续,在上一篇我们完成了工具库的架构,本文扩展字符串去空格的方法, 一共有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 ')' );
[js高手之路] 跟GhostWu一起封装一个字符串工具库-扩展trim,trimLeft,trimRight方法(2)相关推荐
- [js高手之路] 跟GhostWu一起封装一个字符串工具库-扩展字符串位置方法(4)
本文,我们接着之前的框架继续扩展,这次扩展了一共有5个与字符串位置相关的方法 between( left, right ) 返回两个字符串之间的内容, 如果第二个参数没有传递,返回的是找到的第一个参数 ...
- [js高手之路]打造通用的匀速运动框架
本文,是接着上文[js高手之路]匀速运动与实例实战(侧边栏,淡入淡出)继续的,在这篇文章的最后,我们做了2个小实例:侧边栏与改变透明度的淡入淡出效果,本文我们把上文的animate函数,继续改造,让他 ...
- [js高手之路]原型对象(prototype)与原型链相关属性与方法详解
一,instanceof: instanceof检测左侧的__proto__原型链上,是否存在右侧的prototype原型. 我在之前的两篇文章 [js高手之路]构造函数的基本特性与优缺点 [js高手 ...
- [js高手之路] es6系列教程 - 迭代器与生成器详解
什么是迭代器? 迭代器是一种特殊对象,这种对象具有以下特点: 1,所有对象都有一个next方法 2,每次调用next方法,都会返回一个对象,该对象包含两个属性,一个是value, 表示下一个将要返回的 ...
- [js高手之路]html5 canvas动画教程 - 下雪效果
利用canvas,实现一个下雪的效果,我们先预览下效果: 我们先分析下这个效果: 1,随机产生雪花 2,雪花的产生不是同时产生,而是有先后顺序的 3,雪花怎么表示 4,怎么源源不断的下雪 5,雪花有大 ...
- [js高手之路]设计模式系列课程-发布者,订阅者重构购物车
发布者订阅者模式,是一种很常见的模式,比如: 一.买卖房子 生活中的买房,卖房,中介就构成了一个发布订阅者模式,买房的人,一般需要的是房源,价格,使用面积等信息,他充当了订阅者的角色 中介拿到卖主的房 ...
- [js高手之路]深入浅出webpack教程系列9-打包图片(file-loader)用法
[js高手之路]深入浅出webpack教程系列索引目录: [js高手之路]深入浅出webpack教程系列1-安装与基本打包用法和命令参数 [js高手之路]深入浅出webpack教程系列2-配置文件we ...
- [js高手之路]从原型链开始图解继承到组合继承的产生
于javascript原型链的层层递进查找规则,以及原型对象(prototype)的共享特性,实现继承是非常简单的事情 一.把父类的实例对象赋给子类的原型对象(prototype),可以实现继承 1 ...
- [js高手之路] html5 canvas系列教程 - 线条样式(lineWidth,lineCap,lineJoin,setLineDash)
上文,写完弧度与贝塞尔曲线[js高手之路] html5 canvas系列教程 - arcTo(弧度与二次,三次贝塞尔曲线以及在线工具),本文主要是关于线条的样式设置 lineWidth: 设置线条的宽 ...
最新文章
- stm32与arm7比较(经典)
- signals系列之一——基本用法
- 小米8护眼模式无效_雷军没有交代的小米9的N个细节,这篇文章全告诉你了
- 可视化——matplotlib常用api(一)
- mysql中的select into 与insert into语句用于备份数据
- JAVA计算机毕业设计幼儿园管理系统Mybatis+系统+数据库+调试部署
- comsol仿真模型:风力发电机复合材料叶片的应力和模态分析
- java企业公文流转系统ssm框架
- ps软件1.基础工具2.工具快捷键3.图片基本操作4.撤回方法5.抠图
- 计算机科学与技术培养计划,计算机科学与技术专业培养方案(2017版).PDF
- UEBA案例分析系列之检测失陷凭证
- [4G5G专题-91]:流程 - 4G LTE 终端移动性管理总体概述
- 电脑怎么提取图片中的文字?
- 企业级别应用--GFS分布式文件系统(GlusterFS工作原理、弹性 HASH 算法 、GlusterFS卷的类型、 部署GlusterFS)
- 极限中0除以常数_基本不等式中常用公式百度作业帮
- sql重复数据只取一条记录
- 用计算机弹很多的歌,抖音用计算器弹奏音乐曲谱大全 极乐净土、体面和成都等歌曲...
- FAL_SERVER参数解释
- python代码少的作品_原创 8行python代码展示程序员从入门到大神(或跑路)的全部状态...
- ArcGIS基础实验操作100例--实验76按格网统计点要素