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 相关文章推荐
JavaScript小技巧 2.5 则
Sep 12 Javascript
Jquery取得iframe下内容的方法
Nov 18 Javascript
jquery全选checkBox功能实现代码(取消全选功能)
Dec 10 Javascript
jquery中event对象属性与方法小结
Dec 18 Javascript
使用js操作css实现js改变背景图片示例
Mar 10 Javascript
js 奇葩技巧之隐藏代码
Aug 11 Javascript
iview table高度动态设置方法
Mar 14 Javascript
如何制作一个Node命令行图像识别工具
Dec 12 Javascript
JS算法题之查找数字在数组中的索引位置
May 15 Javascript
jquery实现动态创建form并提交的方法示例
May 27 jQuery
vue学习之Vue-Router用法实例分析
Jan 06 Javascript
JQuery绑定事件四种实现方法解析
Dec 02 jQuery
深入理解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介绍篇
2010/10/26 PHP
PHP判断密码强度的方法详解
2017/05/26 PHP
Jquery升级新版本后选择器的语法问题
2010/06/02 Javascript
使用jquery为table动态添加行的实现代码
2011/03/30 Javascript
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
使用JS或jQuery模拟鼠标点击a标签事件代码
2014/03/10 Javascript
javascript中的取反再取反~~没有意义
2014/04/06 Javascript
js实现编辑div节点名称的方法
2014/12/17 Javascript
jQuery中hover方法和toggle方法使用指南
2015/02/27 Javascript
javascript中的Base64、UTF8编码与解码详解
2015/03/18 Javascript
js实现点击链接后延迟3秒再跳转的方法
2015/06/05 Javascript
js漂浮广告实现代码
2015/08/15 Javascript
IE下JS保存图片的简单实例
2016/07/15 Javascript
微信小程序 参数传递详解
2016/10/24 Javascript
trackingjs+websocket+百度人脸识别API实现人脸签到
2018/11/26 Javascript
vue实现短信验证码登录功能(流程详解)
2019/12/10 Javascript
详解JavaScript中的链式调用
2020/11/27 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
2021/02/04 jQuery
[01:15]《辉夜杯》北京网鱼队巡礼
2015/10/26 DOTA
Python  pip安装lxml出错的问题解决办法
2017/02/10 Python
Python3 chardet模块查看编码格式的例子
2019/08/14 Python
python opencv根据颜色进行目标检测的方法示例
2020/01/15 Python
基于python实现操作redis及消息队列
2020/08/27 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
奥地利顶级内衣丝袜品牌英国站:Wolford英国
2016/08/29 全球购物
美国最大的高尔夫发球时间预订网站:TeeOff.com
2018/03/28 全球购物
为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限
2012/12/13 面试题
德语专业求职信
2014/03/12 职场文书
写字楼租赁意向书
2014/07/30 职场文书
高中学生会竞选演讲稿
2014/08/25 职场文书
北京故宫导游词
2015/01/31 职场文书
技术员个人工作总结
2015/03/03 职场文书
优质服务心得体会(共4篇)
2016/01/22 职场文书
python脚本框架webpy的url映射详解
2021/11/20 Python
解析mybatis-plus中的resultMap简单使用
2021/11/23 Java/Android
一文了解MYSQL三大范式和表约束
2022/04/03 MySQL