栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

裁剪字符串trim()自定义改进版

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

裁剪字符串trim()自定义改进版

ECMAscript5已经为字符串定义了原生的trim方法。这个方法可能比会比本文的任何版本的都要快。建议在支持的浏览器中使用原生函数。下面讲述的是自定义trim()函数遇到的问题,改进的过程。功夫在不断淬炼中才能醇正。

Javascript中没有用于移除字符串头尾空白的原生修剪方法。最常见的自定义trim()函数实现如下所示:

复制代码 代码如下:
function trim(text) {

return text.replace(/^s+|s+$/g, ‘');

}

这种实现使用一个正则表达式匹配字符串开头和结尾的一或多个空白字符。replace()方法用空字符串替换所有匹配的部分。

然而这个实现方式有个基于正则表达式的性能问题,这种影响来自两个方面:一方面是指明有两个匹配模式的管道运算符,另一方面是指明全局应用该模式的g标记。

考虑到这些,可以将正则表达式一分为二并去掉g标记来重写该函数,稍稍提高它的速度。

复制代码 代码如下:
function trim(text) {

return text.replace(/^s+/, ‘').replace(/s+$/, ‘');

}

另一个改进的版本。保证正则表达式尽可能地简单。

复制代码 代码如下:
function trim(text) {

//删除字符串的头部空白

text = text.replace(/^s+/, ‘');

// 循环清除尾部空白

for(var i=text.length; i--; ) {

if(/S/.test(text.charAt(i))) { // S 非空白字符

text = text.substring(0, i+1);

break;

}

}

return text;

}

使用建议:第2个trim()函数在小规模处理短字符串时性能还是好的。而第3个trim函数在处理长字符串时明显更快。

题外话:简单的裁剪字符串首尾空白字符函数,引发了对正则表达式的性能问题的考虑并实现规避性能问题的方法。技术追求完美,只能在实践中前行。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/111620.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号