Javascript中各种trim的实现详细解析


Posted in Javascript onDecember 10, 2013

这是lgzx公司的一道面试题,要求给js的String添加一个方法,去除字符串两旁的空白字符(包括空格、制表符、换页符等)。

String.prototype.trim = function() { 
    //return this.replace(/[(^\s+)(\s+$)]/g,"");//??炎址??虚g的空白符也去掉 
    //return this.replace(/^\s+|\s+$/g,""); // 
    return this.replace(/^\s+/g,"").replace(/\s+$/g,""); 
}

JQuery1.4.2,Mootools 使用 
function trim1(str){ 
    return str.replace(/^(\s|\xA0)+|(\s|\xA0)+$/g, ''); 
}

jQuery1.4.3,Prototype 使用,该方式去掉g以稍稍提高性能 在小规模的处理字符串时性能较好
function trim2(str){ 
    return str.replace(/^(\s|\u00A0)+/,'').replace(/(\s|\u00A0)+$/,''); 
}

Steven Levithan 在进行性能测试后提出了在JS中执行速度最快的裁剪字符串方式,在处理长字符串时性能较好
function trim3(str){ 
    str = str.replace(/^(\s|\u00A0)+/,''); 
    for(var i=str.length-1; i>=0; i--){ 
        if(/\S/.test(str.charAt(i))){ 
            str = str.substring(0, i+1); 
            break; 
        } 
    } 
    return str; 
}

最后需要提到的是 ECMA-262(V5) 中给String添加了原生的trim方法(15.5.4.20)。此外Molliza Gecko 1.9.1引擎中还给String添加了trimLeft ,trimRight 方法。
Javascript 相关文章推荐
jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
Apr 01 Javascript
js面向对象 多种创建对象方法小结
May 21 Javascript
js控制href内容的连接内容的变化示例
Apr 30 Javascript
JS获取图片高度宽度的方法分享
Apr 17 Javascript
jQuery实现textarea自动增长宽高的方法
Dec 18 Javascript
jQuery+PHP实现微信转盘抽奖功能的方法
May 25 Javascript
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
Dec 19 Javascript
js获取ip和地区
Mar 10 Javascript
jQuery、layer实现弹出层的打开、关闭功能
Jun 28 jQuery
详解Node.js中path模块的resolve()和join()方法的区别
Oct 29 Javascript
解决vue项目中出现Invalid Host header的问题
Nov 17 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
Dec 07 Vue.js
深入理解Javascript动态方法调用与参数修改的问题
Dec 10 #Javascript
ExtJS的拖拽效果示例
Dec 09 #Javascript
用Javascript获取页面元素的具体位置
Dec 09 #Javascript
jQuery取得select选择的文本与值的示例
Dec 09 #Javascript
JavaScript—window对象使用示例
Dec 09 #Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
Dec 09 #Javascript
跨域传值即主页面与iframe之间互相传值
Dec 09 #Javascript
You might like
PHP命名空间(Namespace)简明教程
2014/06/11 PHP
Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
2014/11/04 PHP
几个实用的PHP内置函数使用指南
2014/11/27 PHP
基于php实现的php代码加密解密类完整实例
2016/10/12 PHP
js数字输入框(包括最大值最小值限制和四舍五入)
2009/11/24 Javascript
一个页面放2段图片滚动代码出现冲突的问题如何解决
2012/12/21 Javascript
基于jquery的9行js轻松实现tab控件示例
2013/10/12 Javascript
css配合jquery美化 select
2013/11/29 Javascript
js中document.write使用过程中的一点疑问解答
2014/03/20 Javascript
javascript面向对象特性代码实例
2014/06/12 Javascript
JavaScript通过select动态更换图片的方法
2015/03/23 Javascript
JavaScript父子窗体间的调用方法
2015/03/31 Javascript
jQuery实现延迟跳转的方法
2015/06/05 Javascript
Nodejs初级阶段之express
2015/11/23 NodeJs
DOM操作和jQuery实现选项移动操作的简单实例
2016/06/07 Javascript
js实现图片切换(动画版)
2016/12/25 Javascript
基于vue 实现token验证的实例代码
2017/12/14 Javascript
深入浅析Node环境和浏览器的区别
2018/08/14 Javascript
对vue中v-on绑定自定事件的实例讲解
2018/09/06 Javascript
Vue实现渲染数据后控制滚动条位置(推荐)
2019/12/09 Javascript
关于vue属性使用和不使用冒号的区别说明
2020/10/22 Javascript
Python交换变量
2008/09/06 Python
Python检测字符串中是否包含某字符集合中的字符
2015/05/21 Python
python统计字母、空格、数字等字符个数的实例
2018/06/29 Python
python实现播放音频和录音功能示例代码
2018/12/30 Python
python实现多张图片拼接成大图
2019/01/15 Python
css3实现背景模糊的三种方式(小结)
2020/05/15 HTML / CSS
浅谈pc和移动端的响应式的使用
2019/01/03 HTML / CSS
澳大利亚家用电器在线商店:Billy Guyatts
2020/05/05 全球购物
《宿建德江》教学反思
2014/04/23 职场文书
内科护士节演讲稿
2014/09/11 职场文书
乡镇干部个人对照检查材料思想汇报(原创篇)
2014/09/28 职场文书
2014年党的群众路线学习心得体会
2014/11/05 职场文书
2014年司法所工作总结
2014/11/22 职场文书
教师辞职信范文
2015/02/28 职场文书
幼师求职自荐信
2015/03/26 职场文书