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 相关文章推荐
用javascript实现给出的盒子的序列是否可连为一矩型
Aug 30 Javascript
js带前后翻页的图片切换效果代码分享
Sep 08 Javascript
ionic实现带字的toggle滑动组件
Aug 27 Javascript
用JS动态设置CSS样式常见方法小结(推荐)
Nov 10 Javascript
浅谈express 中间件机制及实现原理
Aug 31 Javascript
Vue.set()实现数据动态响应的方法
Feb 07 Javascript
编写React组件项目实践分析
Mar 04 Javascript
JS如何获取地址栏的参数实例讲解
Oct 06 Javascript
JavaScript实现的开关灯泡点击切换特效示例
Jul 08 Javascript
小程序实现日历左右滑动效果
Oct 21 Javascript
详解vue中v-bind:style效果的自定义指令
Jan 21 Javascript
js 函数性能比较方法
Aug 24 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 Sql Server连接失败问题及解决办法
2009/08/07 PHP
PHP的变量总结 新手推荐
2011/04/18 PHP
jQuery EasyUI API 中文文档 - Dialog对话框
2011/11/15 Javascript
jQuery图片特效插件Revealing实现拉伸放大
2015/04/22 Javascript
jquery实现Slide Out Navigation滑出式菜单效果代码
2015/09/07 Javascript
浅谈js构造函数的方法与原型prototype
2016/07/04 Javascript
Bootstrap中的fileinput 多图片上传及编辑功能
2016/09/05 Javascript
AJAX和jQuery动态加载数据的实现方法
2016/12/05 Javascript
jquery mobile移动端幻灯片滑动切换效果
2020/04/15 Javascript
微信小程序 图片边框解决方法
2017/01/16 Javascript
bootstrap PrintThis打印插件使用详解
2017/02/20 Javascript
浅谈Vue网络请求之interceptors实际应用
2018/02/28 Javascript
深入浅析angular和vue还有jquery的区别
2018/08/13 jQuery
基于axios 解决跨域cookie丢失的问题
2018/09/26 Javascript
js控制随机数生成概率代码实例
2019/03/21 Javascript
[11:57]《一刀刀一天》第十七期:TI中国军团加油!
2014/05/26 DOTA
python脚本实现查找webshell的方法
2014/07/31 Python
对pandas的dataframe绘图并保存的实现方法
2017/08/05 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
Pandas数据离散化原理及实例解析
2019/11/16 Python
Python算法的时间复杂度和空间复杂度(实例解析)
2019/11/19 Python
Python编译为二进制so可执行文件实例
2019/12/23 Python
Python urlencode和unquote函数使用实例解析
2020/03/31 Python
python 识别登录验证码图片功能的实现代码(完整代码)
2020/07/03 Python
Python爬虫抓取指定网页图片代码实例
2020/07/24 Python
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
意大利和国际最佳时尚品牌:Drestige
2019/12/28 全球购物
教师考核材料
2014/05/21 职场文书
投标承诺书怎么写
2014/05/24 职场文书
俞敏洪一分钟演讲稿
2014/08/26 职场文书
房屋租赁协议书
2014/10/18 职场文书
房屋所有权证明
2014/10/20 职场文书
单位租房协议书范本
2014/12/04 职场文书
政协工作总结2015
2015/05/20 职场文书
初中运动会闭幕词范本3篇
2019/12/09 职场文书
详解如何修改nginx的默认端口
2021/03/31 Servers