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 相关文章推荐
DOM Scripting中的图片切换[兼容Firefox]
Jun 12 Javascript
js 中 document.createEvent的用法
Aug 29 Javascript
Bookmarklet实现启动jQuery(模仿 云输入法)
Sep 15 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件。
Dec 26 Javascript
jQuery 在光标定位的地方插入文字的插件
May 10 Javascript
利用jquery操作Radio方法小结
Oct 20 Javascript
jquery实现限制textarea输入字数的方法
Sep 06 jQuery
对node.js中render和send的用法详解
May 14 Javascript
深入浅析angular和vue还有jquery的区别
Aug 13 jQuery
angular ng-model 无法获取值的处理方法
Oct 02 Javascript
微信小程序把百度地图坐标转换成腾讯地图坐标过程详解
Jul 10 Javascript
node+multer实现图片上传的示例代码
Feb 18 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
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
php获取当前网址url并替换参数或网址的方法
2010/06/06 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
2014/11/18 PHP
常见的四种POST 提交数据方式(小总结)
2015/10/08 PHP
PHP实现生成推广海报的方法详解
2018/03/14 PHP
javascript 实现键盘上下左右功能的小例子
2013/09/15 Javascript
javascript 表格内容排序 简单操作示例代码
2014/01/03 Javascript
超棒的响应式布局jQuery插件Freetile.js
2014/11/17 Javascript
javascript数组排序汇总
2015/07/07 Javascript
javascript解析xml实现省市县三级联动的方法
2015/07/25 Javascript
动态JavaScript所造成一些你不知道的危害
2016/09/25 Javascript
js实现简单的计算器功能
2017/01/16 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
2017/02/16 Javascript
React Native基础入门之调试React Native应用的一小步
2018/07/02 Javascript
使用mixins实现elementUI表单全局验证的解决方法
2019/04/02 Javascript
小程序实现新用户判断并跳转激活的方法
2019/05/20 Javascript
JS实现简易计算器
2020/02/14 Javascript
JS图片预加载三种实现方法解析
2020/05/08 Javascript
基于javascript实现移动端轮播图效果
2020/12/21 Javascript
[32:07]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第一场 12.16
2020/12/17 DOTA
Python实现把xml或xsl转换为html格式
2015/04/08 Python
在Django的URLconf中进行函数导入的方法
2015/07/18 Python
python中json格式数据输出的简单实现方法
2016/10/31 Python
Python探索之Metaclass初步了解
2017/10/28 Python
Python高级property属性用法实例分析
2019/11/19 Python
Python continue语句实例用法
2020/02/06 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
2020/02/26 Python
Python lxml库的简单介绍及基本使用讲解
2020/12/22 Python
摄影实习自我鉴定
2013/09/20 职场文书
应用心理学个人的求职信
2013/12/08 职场文书
市委常委班子党的群众路线教育实践活动整改措施
2014/10/02 职场文书
贪污受贿检讨书范文
2014/11/19 职场文书
大学生在校表现评语
2014/12/31 职场文书
餐饮服务食品安全承诺书
2015/04/29 职场文书
2016年小学“感恩教师”主题队日活动总结
2016/04/01 职场文书
vue 自定义组件添加原生事件
2022/04/21 Vue.js