首页 web前端 js教程 JS trim去空格的最佳实践_javascript技巧

JS trim去空格的最佳实践_javascript技巧

May 16, 2016 pm 06:00 PM
trim

刚好上次有同学提出疑问。刚好可以自测一下。先来看看老道在《JavaScript 精粹》P33 写的吧。他对 String 对象扩展了一个 trim() 方法:

复制代码 代码如下:

Function.prototype.method = function(name, func) {
this.prototype[name] = func;
return this;
};

String.method('trim', function() {
return this.replace(/^\s+|\s+$/g, '');
});

熟悉吧,/^\s+|\s+$/g,这样的正则表达式。多少框架在用呢。比如 jQuery 的 trimLeft, trimRight:
复制代码 代码如下:

// Used for trimming whitespace
trimLeft = /^\s+/,
trimRight = /\s+$/,

这是最佳实践么?但我们框架使用的不是这种方法(暂且称为半正则方法)。上次在其他产品组在内部 PK 的时候,说过,为什么我们框架要用下面这样的方法来实现 trim(),而不是用上面的那种。
复制代码 代码如下:

trim: function(){
var str = this.str.replace(/^\s+/,'');
for(var i= str.length - 1; i >= 0; i--){
if(/\S/.test(str.charAt(i))){
str = str.substring(0,i+1);
break;
}
}
return str;
}

原因工友已经说了,因为正则的反向匹配比较慢。我对其性能进行了对比。综合速度和写法上来说,个人还是偏向于第一种写法。因为速度其实相差很少很少。从代码来说第二种比较晦涩并且并字节很多,这对于一个流量很高但需要用 trim() 很少的网站来说,第一种明显比较合适,看看下面的测试结果(自已测试,猛击这里):

trim

啊?原来不是半正则的方式最快啊?是的,其实很多高级浏览器中已经默认提供 trim() 了。速度就不用说了,100 倍?哈哈哈。最后,方案如下:

复制代码 代码如下:

if(!String.prototype.trim){
String.prototype.trim = function(){
return this.replace(/^\s+|\s+$/g, '');
}
}
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

仓库:如何复兴队友
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

实用技巧:如何利用PHP中的trim函数处理中文空格 实用技巧:如何利用PHP中的trim函数处理中文空格 Mar 27, 2024 am 11:27 AM

在PHP编程中,处理字符串时经常会遇到空格的问题,这其中包括中文空格。在实际开发中,我们常常会使用trim函数来去除字符串两端的空格,但是对于中文空格的处理相对复杂一些。本文将介绍如何利用PHP中的trim函数来处理中文空格,并提供具体的代码示例。首先,让我们了解一下中文空格的种类。在中文中,空格不仅包括常见的英文空格(space),还存在其他一些特殊的空格

PHP中trim()函数的使用指南 PHP中trim()函数的使用指南 Feb 20, 2024 am 08:39 AM

PHP中trim()函数的使用指南trim()函数在PHP中非常常用,用于去除字符串开头和结尾的空格或其他指定字符。本文将详细介绍trim()函数的使用方法,并提供具体的代码示例。一、函数语法trim()函数的语法如下:trim(string$str,string$character_mask=""):string该函数接受两个参数,

固态硬盘的trim功能有什么作用 固态硬盘的trim功能有什么作用 Nov 21, 2022 am 10:58 AM

固态硬盘的trim功能主要是优化固态硬盘,解决SSD使用后的降速与寿命的问题,通过准备数据块进行重用来提高SSD效率的功能。Trim功能是几乎所有SSD固态硬盘都具有的功能,是一个ATA指令,当系统确认SSD支持Trim在删除数据时,不向硬盘通知删除指令,只使用Volume Bitmap来记住这里的数据已经删除。从而实现更加快速的数据处理。

使用strings.Trim函数去除字符串首尾的指定字符集 使用strings.Trim函数去除字符串首尾的指定字符集 Jul 24, 2023 pm 04:27 PM

使用strings.Trim函数去除字符串首尾的指定字符集在Go语言中,strings.Trim函数是一个非常实用的函数,可以去除字符串首尾指定字符集,让字符串更加整洁和规范。本文将介绍如何使用strings.Trim函数,以及展示一些代码示例。首先我们来看一下strings.Trim函数的原型:funcTrim(sstring,cutsetstri

Windows 11 上的 TRIM 启用和禁用方法 Windows 11 上的 TRIM 启用和禁用方法 Sep 29, 2023 pm 03:13 PM

使用SSD驱动器会让您一直担心丢失数据并且无法恢复数据。但是,Windows允许您通过执行仅写入必要数据的TRIM命令来实现最佳性能,而无需管理旧数据块。为此,您需要确保您的SSD支持TRIM并在您的操作系统中启用它。如何检查是否启用了TRIM?在大多数情况下,默认情况下,在现代SSD中启用TRIM功能。但为了确保这一点签出,您可以使用管理权限运行命令。只需打开提升的命令提示符,运行fsutil行为查询DisableDeleteNotify命令,您的SSD就会列出。0表示已启用,1表示已禁用。如

使用PHP函数 'trim' 去除字符串两端的空白字符 使用PHP函数 'trim' 去除字符串两端的空白字符 Jul 25, 2023 pm 04:45 PM

PHP函数"trim"是一种非常有用的字符串处理函数。它可以帮助我们去除字符串两端的空白字符,包括空格、制表符、换行符等等。在编写PHP程序时,我们经常会遇到需要清理用户输入的情况,这时候使用"trim"可以确保我们得到干净的字符串,避免因为用户输入不规范而引发错误。下面是一个简单的代码示例,展示了如何使用"trim"函数:<?php

PHP教程:学习使用trim函数去除中文空格 PHP教程:学习使用trim函数去除中文空格 Mar 27, 2024 am 11:00 AM

PHP教程:学习使用trim函数去除中文空格,需要具体代码示例在PHP开发中,经常会遇到需要处理字符串的情况,而其中一个常见的需求就是去除字符串两端的空格。在处理英文字符串时,我们可以直接使用PHP内置的trim函数来实现这一操作,但是当字符串中包含中文字符时,trim函数可能并不能正常去除中文空格,这时就需要使用一些特殊处理方法来实现我们的需求。本文将介绍

Java中trim如何用 Java中trim如何用 May 02, 2023 pm 01:31 PM

1、说明trim()是Java开发人员最常用的删除前导和尾随空格的方法。对于trim()方法,空格字符是指*ASCII值小于或等于32('U+0020')*的任何字符。trim()方法返回调用字符串对象的一个副本,但是所有起始和结尾都被删掉了。2、实例publicclassFunTester{publicstaticvoidmain(String[]args){Stringstring="onetwothree";System.out.prin

See all articles