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之十 事件模块概述
Jun 27 Javascript
jQuery右键菜单contextMenu使用实例
Sep 28 Javascript
Javascript this 的一些学习总结
Aug 02 Javascript
JavaScript字符串String和Array操作的有趣方法
Dec 18 Javascript
javascript 原型链维护和继承详解
Nov 26 Javascript
jquery实现加载进度条提示效果
Nov 23 Javascript
JavaScript创建对象的七种方式全面总结
Aug 21 Javascript
Three.js 再探 - 写一个微信跳一跳极简版游戏
Jan 04 Javascript
10个经典的网页鼠标特效代码
Jan 09 Javascript
vue.js删除列表中的一行
Jun 30 Javascript
Vue组件教程之Toast(Vue.extend 方式)详解
Jan 27 Javascript
javascript实现前端成语点击验证
Jun 24 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
精致的人儿就要挑杯子喝咖啡
2021/03/03 冲泡冲煮
PHP写UltraEdit插件脚本实现方法
2011/12/26 PHP
PHP回溯法解决0-1背包问题实例分析
2015/03/23 PHP
8个必备的PHP功能开发
2015/10/02 PHP
准确获得页面、窗口高度及宽度的JS
2006/11/26 Javascript
IE7中javascript操作CheckBox的checked=true不打勾的解决方法
2009/12/07 Javascript
js自动闭合html标签(自动补全html标记)
2012/10/04 Javascript
Jquery获取复选框被选中值的简单方法
2013/07/04 Javascript
Javascript中this的用法详解
2014/09/22 Javascript
jquery中val()方法是从最后一个选项往前读取的
2015/09/06 Javascript
基于Phantomjs生成PDF的实现方法
2016/11/07 Javascript
微信小程序 两种滑动方式(横向滑动,竖向滑动)详细及实例代码
2017/01/13 Javascript
基于vue-cli创建的项目的目录结构及说明介绍
2017/11/23 Javascript
详解webpack3编译兼容IE8的正确姿势
2017/12/21 Javascript
vue中使用element-ui进行表单验证的实例代码
2018/06/22 Javascript
JS基于对象的链表实现与使用方法示例
2019/01/31 Javascript
JavaScript数据结构与算法之二叉树插入节点、生成二叉树示例
2019/02/21 Javascript
ES7之Async/await的使用详解
2019/03/28 Javascript
vue+element导航栏高亮显示的解决方式
2019/11/12 Javascript
使用uni-app开发微信小程序的实现
2019/12/13 Javascript
[58:25]VP vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
[02:05:03]完美世界DOTA2联赛循环赛 LBZS VS Matador BO2 10.28
2020/10/28 DOTA
Python编程中的文件操作攻略
2015/10/16 Python
selenium+python实现自动登录脚本
2018/04/22 Python
python使用openpyxl操作excel的方法步骤
2020/05/28 Python
python安装读取grib库总结(推荐)
2020/06/24 Python
Clearly新西兰:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
自我评价的正确写法
2013/09/19 职场文书
仓管员岗位责任制
2014/02/19 职场文书
党的群众路线教育实践活动心得体会
2014/03/03 职场文书
《故都的秋》教学反思
2014/04/15 职场文书
2014年感恩母亲演讲稿
2014/05/27 职场文书
初婚初育证明范本
2015/06/18 职场文书
感恩信:写给爸爸妈妈的一封感谢信
2019/09/12 职场文书
Python的flask接收前台的ajax的post数据和get数据的方法
2021/04/12 Python
Win10玩csgo闪退如何解决?Win10玩csgo闪退的解决方法
2022/07/23 数码科技