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 将元素显示在屏幕的中央的代码
Feb 27 Javascript
JQuery从头学起第三讲
Jul 06 Javascript
httpclient模拟登陆具体实现(使用js设置cookie)
Dec 11 Javascript
制作jquery遮罩层效果导航菜单代码分享
Dec 25 Javascript
JS给超链接加确认对话框的方法
Feb 24 Javascript
在JavaScript中处理字符串之fontcolor()方法的使用
Jun 08 Javascript
JavaScript数组实现数据结构中的队列与堆栈
May 26 Javascript
可输入文字查找ajax下拉框控件 ComBox的实现方法
Oct 25 Javascript
Vue.use()在new Vue() 之前使用的原因浅析
Aug 26 Javascript
JS实现滑动插件
Jan 15 Javascript
JavaScript定时器使用方法详解
Mar 26 Javascript
vue使用v-model进行跨组件绑定的基本实现方法
Apr 28 Vue.js
深入理解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数组的一些常见操作汇总
2011/07/17 PHP
PHP判断IP并转跳到相应城市分站的方法
2015/03/25 PHP
极酷的javascirpt,让你随意编辑任何网页
2007/02/25 Javascript
在html页面上拖放移动标签
2010/01/08 Javascript
js作用域及作用域链概念理解及使用
2013/04/15 Javascript
使用js判断数组中是否包含某一元素(类似于php中的in_array())
2013/12/12 Javascript
浅析JQuery中的html(),text(),val()区别
2014/09/01 Javascript
简单方法判断JavaScript对象为null或者属性为空
2014/09/26 Javascript
BootstrapTable请求数据时设置超时(timeout)的方法
2017/01/22 Javascript
vuejs指令详解
2017/02/07 Javascript
layui select获取自定义属性方法
2018/08/15 Javascript
详解vue-cli中使用rem,vue自适应
2019/05/06 Javascript
JS如何生成随机验证码
2020/03/02 Javascript
详解如何用OpenCV + Python 实现人脸识别
2017/10/20 Python
解决Pycharm下面出现No R interpreter defined的问题
2018/10/29 Python
pyqt5 使用label控件实时显示时间的实例
2019/06/14 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
2019/07/10 Python
python连接、操作mongodb数据库的方法实例详解
2019/09/11 Python
python文字转语音实现过程解析
2019/11/12 Python
Python 字典中的所有方法及用法
2020/06/10 Python
哪些是python中web开发框架
2020/06/17 Python
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
中国网上药店领导者:1药网
2017/02/16 全球购物
Java的基础面试题附答案
2016/01/10 面试题
工程造价自荐信
2013/10/09 职场文书
八年级音乐教学反思
2014/01/09 职场文书
全国道德模范事迹
2014/02/01 职场文书
物流管理专业毕业生求职信
2014/03/23 职场文书
二年级班级文化建设方案
2014/05/10 职场文书
经典禁毒标语
2014/06/16 职场文书
专题组织生活会思想汇报
2014/10/01 职场文书
2015年电气技术员工作总结
2015/07/24 职场文书
大学文艺委员竞选稿
2015/11/19 职场文书
大学生创业,为什么都会选择快餐饮?
2019/08/08 职场文书
HTML中的表单Form实现居中效果
2021/05/25 HTML / CSS
Ajax异步刷新功能及简单案例
2021/11/20 Javascript