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 replace(rgExp,fn)正则替换的用法
Mar 04 Javascript
window.onload和$(function(){})的区别介绍
Oct 30 Javascript
jquery实现图片按比例缩放示例
Jul 01 Javascript
分享五个有用的jquery小技巧
Oct 08 Javascript
Svg.js实例教程及使用手册详解(一)
May 16 Javascript
原生JS实现图片轮播与淡入效果的简单实例
Aug 21 Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
Aug 31 Javascript
浅谈angular4实际项目搭建总结
Dec 01 Javascript
浅谈React深度编程之受控组件与非受控组件
Dec 26 Javascript
解决vue2中使用axios http请求出现的问题
Mar 05 Javascript
vue动态路由配置及路由传参的方式
May 23 Javascript
浅谈Node框架接入ELK实践总结
Feb 22 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输出数组中重名的元素的几种处理方法
2012/09/05 PHP
PHP中设置时区,记录日志文件的实现代码
2013/01/07 PHP
用Javascript实现UTF8编码转换成gb2312编码
2006/12/22 Javascript
ASP 过滤数组重复数据函数(加强版)
2010/05/31 Javascript
8款非常棒的响应式jQuery 幻灯片插件推荐
2012/02/02 Javascript
js借助ActiveXObject实现创建文件
2013/09/29 Javascript
jquery解析xml字符串简单示例
2014/04/11 Javascript
JavaScript事件委托的技术原理探讨示例
2014/04/17 Javascript
jquery队列函数用法实例
2014/12/16 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
jQuery+ajax+asp.net获取Json值的方法
2016/06/08 Javascript
AngularJS通过$location获取及改变当前页面的URL
2016/09/23 Javascript
JQueryEasyUI框架下的combobox的取值和绑定的方法
2017/01/22 Javascript
jQuery实现最简单实用的分秒倒计时
2017/02/05 Javascript
JavaScript中各数制转换全面总结
2017/08/21 Javascript
JS实现table表格固定表头且表头随横向滚动而滚动
2017/10/26 Javascript
vue + typescript + 极验登录验证的实现方法
2019/06/27 Javascript
vue项目前端微信JSAPI与外部H5支付相关实现过程及常见问题
2020/04/14 Javascript
JavaScript如何判断对象有某属性
2020/07/03 Javascript
[01:21:36]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python中map,reduce,filter和sorted函数的使用方法
2015/08/17 Python
python清除函数占用的内存方法
2018/06/25 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
2018/07/11 Python
python爬虫框架scrapy实现模拟登录操作示例
2018/08/02 Python
pyqt5中QThread在使用时出现重复emit的实例
2019/06/21 Python
Python学习笔记之Django创建第一个数据库模型的方法
2019/08/07 Python
Python装饰器使用你可能不知道的几种姿势
2019/10/25 Python
Python使用type动态创建类操作示例
2020/02/29 Python
Python使用pdb调试代码的技巧
2020/05/03 Python
Lacoste(法国鳄鱼)加拿大官网:以标志性的POLO衫而闻名
2019/05/15 全球购物
英国索普公园票务和酒店套餐:Thorpe Breaks
2019/09/14 全球购物
材料成型专业个人求职信范文
2013/09/25 职场文书
保护环境的建议书
2014/03/12 职场文书
残疾人小组计划书
2014/04/27 职场文书
干部竞争上岗演讲稿
2014/09/11 职场文书
党支部班子“四风”问题自我剖析材料
2014/09/28 职场文书