裁剪字符串trim()自定义改进版 js代码
来源:互联网 发布:mac excel 公式求值 编辑:程序博客网 时间:2024/05/16 09:15
自定义trim()函数遇到的问题,建议在支持的浏览器中使用原生函数!!!
ECMAScript5已经为字符串定义了原生的trim方法。这个方法可能比会比本文的任何版本的都要快。建议在支持的浏览器中使用原生函数。下面讲述的是自定义trim()函数遇到的问题,改进的过程。功夫在不断淬炼中才能醇正。
JavaScript中没有用于移除字符串头尾空白的原生修剪方法。最常见的自定义trim()函数实现如下所示:
这种实现使用一个正则表达式匹配字符串开头和结尾的一或多个空白字符。replace()方法用空字符串替换所有匹配的部分。
然而这个实现方式有个基于正则表达式的性能问题,这种影响来自两个方面:一方面是指明有两个匹配模式的管道运算符,另一方面是指明全局应用该模式的g标记。
考虑到这些,可以将正则表达式一分为二并去掉g标记来重写该函数,稍稍提高它的速度。
另一个改进的版本。保证正则表达式尽可能地简单。
使用建议:第2个trim()函数在小规模处理短字符串时性能还是好的。而第3个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+/, ‘');// 循环清除尾部空白// by http://www.jbxue.comfor(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函数在处理长字符串时明显更快。
题外话:简单的裁剪字符串首尾空白字符函数,引发了对正则表达式的性能问题的考虑并实现规避性能问题的方法。技术追求完美,只能在实践中前行。
- 裁剪字符串trim()自定义改进版 js代码
- js 裁剪字符串
- js裁剪字符串
- js版trim()方法
- JS中自定义实现trim()方法
- JS的trim()方法,去掉字符串空格
- JS中的字符串的trim()方法
- js去除字符串空格,实现trim()方法
- js trim 去除字符串两端空格
- JS中字符串trim()使用示例
- "字符串".trim()
- 字符串trim()
- js trim
- js Trim
- JS trim
- js trim
- js trim
- js trim()
- IKJEFT01用法之——Unload Table Data
- 黑马程序员 04 Java基础教学 - 04 - Java基础之数组
- 第二天,2013-04-10,就业班第一天
- android学习笔记---36_Activity生命周期
- 排序算法
- 裁剪字符串trim()自定义改进版 js代码
- QTP Launch
- Testbed 提示错误信息“系统找不到指定的文件”
- JavaScript 全面解析各种浏览器网页中的JS 执行顺序
- win8系统硬盘的分区
- C/C++笔记
- 几个比较常见的开源协议
- openstack身份管理
- ObservableValue javafx