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 使用手册(二)
Sep 23 Javascript
JavaScript 学习笔记(十六) js事件
Feb 01 Javascript
javascript-表格排序(降序/反序)实现介绍(附图)
May 30 Javascript
select、radio表单回显功能实现避免使用jquery载入赋值
Jun 08 Javascript
JS加jquery简单实现标签元素的显示或隐藏
Sep 23 Javascript
jquery获取checkbox的值并post提交
Jan 14 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
Sep 24 Javascript
微信小程序 两种为对象属性赋值的方式详解
Feb 23 Javascript
Vue2.0实现1.0的搜索过滤器功能实例代码
Mar 20 Javascript
vue深入解析之render function code详解
Jul 18 Javascript
js实现图片粘贴上传到服务器并展示的实例
Nov 08 Javascript
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
Apr 28 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弹出对话框实现重定向代码
2014/01/23 PHP
php结合ajax实现赞、顶、踩功能实例
2014/05/12 PHP
PHP统一页面编码避免乱码问题
2015/04/09 PHP
php使用array_search函数实现数组查找的方法
2015/06/12 PHP
thinkphp验证码的实现(form、ajax实现验证)
2016/07/28 PHP
php实现简单加入购物车功能
2017/03/07 PHP
Yii框架实现的验证码、登录及退出功能示例
2017/05/20 PHP
php7基于递归实现删除空文件夹的方法示例
2017/06/15 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
2020/09/25 PHP
Prototype Object对象 学习
2009/07/12 Javascript
js中对象的声明方式以及数组的一些用法示例
2013/12/11 Javascript
在javascript中使用com组件的简单实现方法
2016/08/17 Javascript
JavaScript中的普通函数和箭头函数的区别和用法详解
2017/03/21 Javascript
从零开始学习Node.js系列教程四:多页面实现的数学运算示例
2017/04/13 Javascript
JQuery 封装 Ajax 常用方法(推荐)
2017/05/21 jQuery
angularjs select 赋值 ng-options配置方法
2018/02/28 Javascript
Js中将Long转换成日期格式的实现方法
2018/06/05 Javascript
vue.js 添加 fastclick的支持方法
2018/08/28 Javascript
小程序中canvas的drawImage方法参数使用详解
2019/07/04 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
2019/07/20 Javascript
Node.js安装详细步骤教程(Windows版)详解
2019/09/01 Javascript
Node.js Domain 模块实例详解
2020/03/18 Javascript
vue实现表单未编辑或未保存离开弹窗提示功能
2020/04/08 Javascript
python高并发异步服务器核心库forkcore使用方法
2013/11/26 Python
从Python的源码浅要剖析Python的内存管理
2015/04/16 Python
Python3实现的画图及加载图片动画效果示例
2018/01/19 Python
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
2018/05/21 Python
学习python的前途 python挣钱
2019/02/27 Python
建筑安全标语
2014/06/07 职场文书
运动会方阵口号
2014/06/07 职场文书
活动总结范文
2014/08/30 职场文书
2014入党积极分子批评与自我批评思想汇报
2014/09/20 职场文书
旷课检讨书范文
2015/01/27 职场文书
幼师辞职信怎么写
2015/02/27 职场文书
详解Java实践之建造者模式
2021/06/18 Java/Android
国庆节到了,利用JS实现一个生成国庆风头像的小工具 详解实现过程
2021/10/05 Javascript