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 相关文章推荐
javascrip关于继承的小例子
May 10 Javascript
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
Oct 11 Javascript
JavaScript验证Email(3种方法)
Sep 21 Javascript
基于jquery实现省市区三级联动效果
Dec 25 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
May 27 Javascript
基于vuejs实现一个todolist项目
Apr 11 Javascript
Vue中的scoped实现原理及穿透方法
May 15 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
Nov 01 Javascript
小程序测试后台服务的方法(ngrok)
Mar 08 Javascript
通过js示例讲解时间复杂度与空间复杂度
Aug 06 Javascript
原生js实现碰撞检测
Mar 12 Javascript
vue 解决uglifyjs-webpack-plugin打包出现报错的问题
Aug 04 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 无法加载mysql的module的时候的配置的解决方案引发的思考
2012/01/27 PHP
探讨file_get_contents与curl效率及稳定性的分析
2013/06/06 PHP
一个报数游戏js版(约瑟夫环问题)
2010/08/05 Javascript
简洁Ajax函数处理(示例代码)
2013/11/15 Javascript
javascript数组操作(创建、元素删除、数组的拷贝)
2014/04/07 Javascript
javascript中数组的多种定义方法和常用函数简介
2014/05/09 Javascript
jQuery中replaceAll()方法用法实例
2015/01/16 Javascript
Node.js包管理器Yarn的入门介绍与安装
2016/10/17 Javascript
微信小程序 form组件详解
2016/10/25 Javascript
详解Html a标签中href和onclick用法、区别、优先级别
2017/01/16 Javascript
详解浏览器缓存和webpack缓存配置
2018/07/06 Javascript
原生JS实现$.param() 函数的方法
2018/08/10 Javascript
Vue-router的使用和出现空白页,路由对象属性详解
2018/09/03 Javascript
JavaScript数组去重实现方法小结
2020/01/17 Javascript
vue子组件改变父组件传递的prop值通过sync实现数据双向绑定(DEMO)
2020/02/01 Javascript
浅谈TypeScript的类型保护机制
2020/02/23 Javascript
纯js+css实现在线时钟
2020/08/18 Javascript
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
2021/01/22 Vue.js
[52:22]EG vs VG Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
Python cookbook(数据结构与算法)在字典中将键映射到多个值上的方法
2018/02/18 Python
Scrapy使用的基本流程与实例讲解
2018/10/21 Python
python开发准备工作之配置虚拟环境(非常重要)
2019/02/11 Python
django获取from表单multiple-select的value和id的方法
2019/07/19 Python
Python Django中间件,中间件函数,全局异常处理操作示例
2019/11/08 Python
Python通过正则库爬取淘宝商品信息代码实例
2020/03/02 Python
python实现126邮箱发送邮件
2020/05/20 Python
Django实现微信小程序支付的示例代码
2020/09/03 Python
英国比较机场停车场网站:Airport Parking Essentials
2019/12/01 全球购物
小学生自我评价范文
2014/01/25 职场文书
本科生导师推荐信范文
2014/05/18 职场文书
质量承诺书格式
2014/05/20 职场文书
学校副校长四风对照检查材料整改措施
2014/09/25 职场文书
有关水浒传的读书笔记
2015/06/25 职场文书
Golang的继承模拟实例
2021/06/30 Golang
Netflix《海贼王》真人版剧集多张片场照曝光
2022/04/04 日漫
尝试使用Python爬取城市租房信息
2022/04/12 Python