Javascript中各种trim的实现详细解析
这是lgzx公司的一道面试题,要求给js的String添加一个方法,去除字符串两旁的空白字符(包括空格、制表符、换页符等)。
代码如下:
String.prototype.trim = function() {
//return this.replace(/[(^\s+)(\s+$)]/g,"");//會把字符串中間的空白符也去掉
//return this.replace(/^\s+|\s+$/g,""); //
return this.replace(/^\s+/g,"").replace(/\s+$/g,"");
}
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的trim,ltrim,rtrim自定义函数
<script type="text/javascript"> function trim(str){ //删除左右两端的空格 return str.replace(/(^\s*)|(\s*$)/g, ""); } function ltrim(str){ //删除左边的空格 return str.replace(/(^\s*)/g,""); } function rtrim(str){ //删除右边的空格 return str.re
-
C#中TrimStart,TrimEnd,Trim在javascript上的实现
于是乎,自己动手写了个!!看到很多人都是用正则,咱不会,就用了最土的方法来实现了!帖上代码吧!希望对大家有所帮助!!! 复制代码 代码如下: String.prototype.trimStart = function(trimStr){ if(!trimStr){return this;} var temp = this; while(true){ if(temp.substr(0,trimStr.length)!=trimStr){ break; } temp = temp.substr(tr
-
增强的 JavaScript 的 trim 函数的代码
复制代码 代码如下: String.prototype.trim=function(){ var _argument = arguments[0] || " "; var _re= new RegExp("(^"+_argument+"*)|("+_argument+"*$)","g"); // 区分大小写 return this.replace(_re,""); } Stri
-
javascript trim 去空格函数实现代码
String.prototype.trim=function(){ return this.replace(/(^\s*)|(\s*$)/g, ""); } String.prototype.ltrim=function(){ return this.replace(/(^\s*)/g,""); } String.prototype.rtrim=function(){ return this.replace(/(\s*$)/g,""); } [C
-
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
去除字符串两端的空格,是字符串处理非常常用的方法,非常遗憾的是JavaScript没有这三个方法,只有我们自定义了: 第1步,给String添加成员 复制代码 代码如下: String.prototype.Trim = function(){ return Trim(this);} String.prototype.LTrim = function(){return LTrim(this);} String.prototype.RTrim = function(){return RTrim(th
-
JavaScript trim 去除字符串空格的三种方法(附代码详解)
方法一: 正则替换 推荐个人认为最好的方法.采用的是正则表达式,这是最核心的原理. 下面是代码原文 复制代码 代码如下: <SCRIPT LANGUAGE="JavaScript"> <!-- //出处:网上搜集 //For more visit http://www.jb51.net // Trim() , Ltrim() , RTrim() String.prototype.Trim = function() { return this.replace(/(^\s
-
JavaScript去除空格的三种方法(正则/传参函数/trim)
方法一: 个人认为最好的方法.采用的是正则表达式,这是最核心的原理. 其次.这个方法使用了JavaScript 的prototype 属性 其实你不使用这个属性一样可以用函数实现.但这样做后用起来比较方便. 下面就来看看这个属性是怎么来用的. 返回对象类型原型的引用. objectName.prototype objectName 参数是对象的名称. 说明 用 prototype 属性提供对象的类的一组基本功能.对象的新实例"继承"赋予该对象原型的操作. 例如,要为 Array 对象添
-
Javascript中各种trim的实现详细解析
这是lgzx公司的一道面试题,要求给js的String添加一个方法,去除字符串两旁的空白字符(包括空格.制表符.换页符等). 复制代码 代码如下: String.prototype.trim = function() { //return this.replace(/[(^\s+)(\s+$)]/g,"");//會把字符串中間的空白符也去掉 //return this.replace(/^\s+|\s+$/g,""); // return t
-
JavaScript中new运算符的实现过程解析
这篇文章主要介绍了JavaScript中new运算符的实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 废话不多说直接进入正题,首先我们需要先知道new运算符到底做了哪些事情,再来模拟它实现这一功能. 1. 建立一个空的Object对象: 2. 把这个空对象用__proto__链接到原型 3. 用apply绑定对象的this指向 4. 返回新的对象 知道了new的具体过程之后,我们就可以来试一下用代码实现这一过程. // 传参 New
-
JavaScript中原型链存在的问题解析
我们知道使用原型链实现继承是一个goodway:)看个原型链继承的例子. function A () { this.abc = 44; } A.prototype.getAbc = function (){ return this.abc; }; function B() { } B.prototype = new A(); // B通过A的实例完成了继承,形成了原型链(B的原型就是A的实例) var b = new B(); b.getAbc(); 关系如下:b(实例) ->B.prototy
-
Mybatis中的config.xml配置文件详细解析
经过前面的文章,我觉得对Mybatis的正题理解已经足够了,但是对Mybatis的使用,我觉得还是会有一点的模糊,就我个人而言,我觉得掌握好Mybatis框架,主要要明白三个文件,第一个就是等下要谈论的Mybatis-comfig.xml文件,还有就是**Mapper.xml,以及我们所定义的Mapper类,理解了这三个东西,然后有sql的基础,还有java的基础的话,后面不论是使用基于xml的方法,还是基于java-based Configuration的方法,都会简单的多. 废话不多说,现在
-
React函数式组件Hook中的useEffect函数的详细解析
目录 前言 useEffect的作用 useEffect的使用? 1.class组件 2.函数式组件 总结 前言 React函数式编程没有生命周期,因此需要借助useEffect来实现. useEffect的作用 发ajax请求获取数据 设置订阅/获取定时器 手动更改真实DOM useEffect的使用? 1.class组件 在class组件中可以使用生命周期函数,知道组件触发的过程. 代码如下(示例): import React, { Component } from 'react' expo
-
React函数式组件Hook中的useState函数的详细解析
目录 前言 一.什么是函数式组件 二.useState 前言 公司项目需要使用react,而函数式组件也是官方比较推荐的!!!所以学习hooks是很重要的. 一.什么是函数式组件 纯函数组件有以下特点: 没有状态 没有生命周期 没有 this 因存在如上特点,使得纯函数组件只能做UI展示的功能, 涉及到状态的管理与切换就不得不用到类组件或者redux. 但因为简单的页面也是用类组件,同时要继承一个React实例,使得代码会显得很重. 以前我们可以使用class来声明一个组件,其实使用functi
-
React Hook中的useState函数的详细解析
useState => 让函数组件具有维持状态的能力useState 这个 Hook 是用来管理 state 的,它可以让函数组件具有维持状态的能力.即在一个函数组件的多次渲染之间,这个 state 是共享的. Hooks 的最大的作用就是可以让你在不编写class的情况下使用state以及其他的 React 特性 useState的详细解析 在上一篇文章中, 我用到useState来让大家体验一下hooks函数 import { memo, useState } from "react&
-
Tomcat中的catalina.bat原理详细解析
前言 本文主要给大家详细解析了关于Tomcat中catalina.bat原理的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. tomcat 的真正启动是在 catalina.bat 设置并启动的.startup.bat 只是找到catalina.bat 然后执行catalina.bat 来启动tomat的.下面我们来分析下catalina.bat 验证CATALINA_HOME 环境变量 验证CATALINA_HOME 设置是否正确,如果不正确,重新设置CATALIN
-
Javascript中实现trim()函数的两种方法
在JavaScript中我们需要用到trim的地方很多,但是JavaScript又没有独立的trim函数或者方法可以使用,所以我们需要自己写个trim函数来实现我们的目的. 方案一: 以原型方式调用,即obj.trim()形式,此方式简单且使用方面广泛,定义方式如下: 复制代码 代码如下: <script language="javascript"> /** * 删除左右两端的空格 */ String.prototype.trim=function() { ret
-
javascript垃圾收集机制与内存泄漏详细解析
javascript具有自动垃圾收集机制,也就是说,执行环境会负责管理代码执行过程中的使用的内存.而在C和C++之类的语言中,开发人员的一项基本任务就是手动跟踪内存的使用情况,这是造成许多问题的一个根源.在编写javascript程序时候,开发人员不用再关心内存使用的问题,所需内存的分配 以及无用的回收完全实现了自动管理.这种垃圾收集机制的原理其实很简单:找出那些不再继续使用的变量,然后释放其中占用的内存.为此,垃圾收集器会按照固定的时间间隔(或代码执行中预设的收集时间),周期性的执行这一操作.
随机推荐
- ASP缓存技术详解
- jquery和javascript的区别(常用方法比较)
- Java 动态代理与CGLIB详细介绍
- 详解Spring boot使用Redis集群替换mybatis二级缓存
- Python列表list内建函数用法实例分析【insert、remove、index、pop等】
- 与Math.pow 相反的函数使用介绍
- ASP.NET程序发布详细过程
- android 获取视频,图片缩略图的具体实现
- 编译php 5.2.14+fpm+memcached(具体操作详解)
- thinkPHP中_initialize方法实例分析
- Python创建xml文件示例
- Mysql使用大全 从基础到存储过程
- js下通过prototype扩展实现indexOf的代码
- VBS教程:运算符-乘运算符 (*)
- 远程连接SQLSERVER 2000服务器方法
- 恶意网页之注册表后门—注册表使用全攻略之十九
- java 根据经纬度获取地址实现代码
- LaravelS通过Swoole加速Laravel/Lumen详解
- 详解vue项目中使用token的身份验证的简单实践
- JavaScript两种计时器的实例讲解