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 相关文章推荐
代码生成器 document.write()
Apr 15 Javascript
javascript arguments 传递给函数的隐含参数
Aug 21 Javascript
基于JQuery实现鼠标点击文本框显示隐藏提示文本
Feb 23 Javascript
Javascript控制页面链接在新窗口打开具体方法
Aug 16 Javascript
JavaScript自定义事件介绍
Aug 29 Javascript
利用javascript判断文件是否存在
Dec 31 Javascript
AngularJS 自定义指令详解及示例代码
Aug 17 Javascript
浅析$(function) ready和onload 的区别
Sep 03 Javascript
防止重复发送 Ajax 请求
Feb 15 Javascript
js+html5实现半透明遮罩层弹框效果
Aug 24 Javascript
vue中组件通信的八种方式(值得收藏!)
Aug 09 Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
Jul 20 Javascript
深入理解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调用数据库的存贮过程!
2006/10/09 PHP
逐步提升php框架的性能
2008/01/10 PHP
Cannot modify header information错误解决方法
2008/10/08 PHP
php实现singleton()单例模式实例
2014/11/06 PHP
php把数组值转换成键的方法
2015/07/13 PHP
十大使用PHP框架的理由
2015/09/26 PHP
Extjs ajax同步请求时post方式参数发送方式
2009/08/05 Javascript
精通Javascript系列之数据类型 字符串
2011/06/08 Javascript
js查错流程归纳
2012/05/04 Javascript
jquery 单引号和双引号的区别及使用注意
2013/07/31 Javascript
用jquery等比例控制图片宽高的具体实现
2014/01/28 Javascript
jQuery弹出层插件Lightbox_me使用指南
2015/04/21 Javascript
JavaScript如何自定义trim方法
2015/07/28 Javascript
js实现文件上传表单域美化特效
2015/11/02 Javascript
jquery实现图片上传前本地预览功能
2016/05/10 Javascript
深入理解JS addLoadEvent函数
2016/05/20 Javascript
Bootstrap作品展示站点实战项目2
2016/10/14 Javascript
jQuery实现字体颜色渐变效果的方法
2017/03/29 jQuery
js生成word中图片处理方法
2018/01/06 Javascript
[42:35]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS OpTic
2018/03/31 DOTA
Python函数学习笔记
2008/10/07 Python
python提取页面内url列表的方法
2015/05/25 Python
使用Python+Splinter自动刷新抢12306火车票
2018/01/03 Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
2018/08/02 Python
使用python3构建文件传输的方法
2019/02/13 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
2020/01/03 Python
基于Python正确读取资源文件
2020/09/14 Python
英国美发和美容产品商城:HQhair
2019/02/08 全球购物
纽约和芝加哥当天送花:Ode à la Rose
2019/07/05 全球购物
高中自我评价范文
2014/01/27 职场文书
毕业生班级鉴定评语
2015/01/04 职场文书
小学生安全保证书
2015/05/09 职场文书
责任书范本大全
2015/05/11 职场文书
新党员入党决心书
2015/09/22 职场文书
互联网的下一个风口:新的独角兽将诞生
2019/08/02 职场文书
GoFrame框架数据校验之校验结果Error接口对象
2022/06/21 Golang