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 相关文章推荐
CheckBox 如何实现全选?
Jun 23 Javascript
你真的了解JavaScript吗?
Feb 24 Javascript
IE不出现Flash激活框的小发现的js实现方法
Sep 07 Javascript
js 判断上传文件大小及格式代码
Nov 13 Javascript
js获取当前时间显示在页面上并每秒刷新
Dec 24 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
May 28 Javascript
基于Jquery代码实现手风琴菜单
Nov 19 Javascript
原生JS实现首页进度加载动画
Sep 14 Javascript
用Vue.js实现监听属性的变化
Nov 17 Javascript
js Dom实现换肤效果
Oct 21 Javascript
解决vue中对象属性改变视图不更新的问题
Feb 23 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
Dec 10 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
ThinkPHP查询返回简单字段数组的方法
2014/08/25 PHP
PHP连接MySQL进行增、删、改、查操作
2017/02/19 PHP
实例讲解php将字符串输出到HTML
2019/01/27 PHP
PHP反射原理与用法深入分析
2019/09/28 PHP
取键盘键位ASCII码的网页
2007/07/30 Javascript
JavaScript中SQL语句的应用实现
2010/05/04 Javascript
jquery获取自定义属性(attr和prop)实例介绍
2013/04/21 Javascript
javascript实现无缝上下滚动特效
2015/12/16 Javascript
jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法
2016/07/27 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
2016/10/21 Javascript
概述一个页面从输入URL到页面加载完的过程
2016/12/16 Javascript
使用ionic播放轮询广告的实现方法(必看)
2017/04/24 Javascript
解决JS外部文件中文注释出现乱码问题
2017/07/09 Javascript
EasyUI的TreeGrid的过滤功能的解决思路
2017/08/08 Javascript
vue 微信扫码登录(自定义样式)
2020/01/06 Javascript
JavaScript console的使用方法实例分析
2020/04/28 Javascript
JavaScript基于SVG的图片切换效果实例代码
2020/12/15 Javascript
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
python万年历实现代码 含运行结果
2017/05/20 Python
Sanic框架Cookies操作示例
2018/07/17 Python
pygame游戏之旅 调用按钮实现游戏开始功能
2018/11/21 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
2020/04/09 Python
Python中内建模块collections如何使用
2020/05/27 Python
借助HTML5 Canvas API制作一个简单的猜字游戏
2016/03/25 HTML / CSS
Melissa鞋马来西亚官方网站:MDreams马来西亚
2018/04/05 全球购物
手工制作的音乐盒:Music Box Attic
2019/09/05 全球购物
自荐信包含哪些内容
2013/10/30 职场文书
正风肃纪剖析材料
2014/02/18 职场文书
2015关爱留守儿童工作总结
2014/12/12 职场文书
2015年度高中教师工作总结
2015/05/26 职场文书
2019通用版导游词范本!
2019/08/07 职场文书
(开源)微信小程序+mqtt,esp8266温湿度读取
2021/04/02 Javascript
css布局巧妙技巧之css三角示例的运用
2022/03/16 HTML / CSS
Python基本知识点总结
2022/04/07 Python
尝试使用Python爬取城市租房信息
2022/04/12 Python
redis lua限流算法实现示例
2022/07/15 Redis