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插件Style定制化方法的分析与比较
May 03 Javascript
仿谷歌主页js动画效果实现代码
Jul 14 Javascript
基于javascript实现最简单选项卡切换
Feb 01 Javascript
js 去掉字符串前后空格实现代码集合
Mar 25 Javascript
JS实现弹出下载对话框及常见文件类型的下载
Jul 13 Javascript
微信小程序模板和模块化用法实例分析
Nov 28 Javascript
微信小程序添加插屏广告并设置显示频率(一天一次)
Dec 06 Javascript
node创建Vue项目步骤详解
Mar 06 Javascript
es6函数之rest参数用法实例分析
Apr 18 Javascript
详解elementUI中input框无法输入的问题
Apr 27 Javascript
将Vue组件库更换为按需加载的方法步骤
May 06 Javascript
vue 使用async写数字动态加载效果案例
Jul 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
PHP读取目录下所有文件的代码
2008/01/07 PHP
php数组函数序列之array_sum() - 计算数组元素值之和
2011/10/29 PHP
IIS6.0中配置php服务全过程解析
2013/08/07 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
2015/03/10 PHP
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
2008/09/26 Javascript
自动完成JS类(纯JS, Ajax模式)
2009/03/12 Javascript
js 事件截取enter按键页面提交事件示例代码
2014/03/04 Javascript
jquery中each方法示例和常用选择器
2014/07/08 Javascript
对比分析AngularJS中的$http.post与jQuery.post的区别
2015/02/27 Javascript
javascript拖拽应用实例
2016/03/25 Javascript
很棒的Bootstrap选项卡切换效果
2016/07/01 Javascript
EditPlus中的正则表达式 实战(2)
2016/12/15 Javascript
完美解决JS文件页面加载时的阻塞问题
2016/12/18 Javascript
浅谈struts1 & jquery form 文件异步上传
2017/05/25 jQuery
微信小程序开发之实现自定义Toast弹框
2017/06/08 Javascript
Windows下快速搭建NodeJS本地服务器的步骤
2017/08/09 NodeJs
JS无限级导航菜单实现方法
2019/01/05 Javascript
vue实现将一个数组内的相同数据进行合并
2019/11/07 Javascript
js实现适配移动端的拖动效果
2020/01/13 Javascript
使用konva和vue-konva库实现拖拽滑块验证功能
2020/04/27 Javascript
windows下wxPython开发环境安装与配置方法
2014/06/28 Python
Django的session中对于用户验证的支持
2015/07/23 Python
Python操作Excel之xlsx文件
2017/03/24 Python
使用Python实现博客上进行自动翻页
2017/08/23 Python
python 二维矩阵转三维矩阵示例
2019/11/30 Python
Python3 io文本及原始流I/O工具用法详解
2020/03/23 Python
html5 浏览器支持 如何让所有的浏览器都支持HTML5标签样式
2012/12/07 HTML / CSS
美国最灵活的移动提供商:Tello
2017/07/18 全球购物
Book Depository亚太地区:一家领先的国际图书零售商
2019/05/05 全球购物
C语言面试题
2015/10/30 面试题
大学生护理专业自荐信
2013/10/03 职场文书
七年级英语教学反思
2014/01/15 职场文书
高中教师先进事迹材料
2014/08/22 职场文书
领导走群众路线整改措施思想汇报
2014/10/12 职场文书
云台山导游词
2015/02/03 职场文书
观看建国大业观后感
2015/06/01 职场文书