精华内容
下载资源
问答
  • 前端面试——JS去除首尾空格代码
    千次阅读
    2018-07-31 17:38:17

    关于 JavaScript 里的 trim()/strip() 方法 在其他语言中常常用 trim()/strip() 方法脱去不必要的空格等元素。

    JavaScript 本身并不提供 trim() 方法,不过可以用正则表达式,通过给 String 对象增加 trim 方法的方式实现。

    如下:

    if(typeof(String.prototype.trim) === "undefined")
    {
        String.prototype.trim = function() 
        {
            return String(this).replace(/^\s+|\s+$/g, '');
        };
    }
    
    if(" dog  ".trim() === "dog") {
        document.write("去除首尾空格成功");    
    } 

    最主要的还是要写好正则表达式~~

     

     

    更多相关内容
  • function trimStr(str){ return str.replace(/(^\s*)|(\s*$)/g,""); } a = ' runoob ' console.log(trimStr(a));
    function trimStr(str){
      return str.replace(/(^\s*)|(\s*$)/g,"");
    }
    a = '   runoob   '
    console.log(trimStr(a));
    

    在这里插入图片描述

    展开全文
  • 总结JS去掉首尾空格

    万次阅读 2017-02-17 15:11:14
    JS去除空格的方法目前共有12种: 实现1 String.prototype.trim = function() {  return this.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); } 看起来不怎么样, 动用了两次正则替换,实际速度非常惊人,主要...

    JS去除空格的方法目前共有12种:

    实现1

    String.prototype.trim = function() {
      return this.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
    }

    看起来不怎么样, 动用了两次正则替换,实际速度非常惊人,主要得益于浏览器的内部优化。一个著名的例子字符串拼接,直接相加比用Array做成的StringBuffer 还快。base2类库使用这种实现。
    实现2

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

    和实现1 很相似,但稍慢一点,主要原因是它最先是假设至少存在一个空白符。Prototype.js使用这种实现,不过其名字为strip,因为 Prototype的方法都是力求与Ruby同名。
    实现3

    String.prototype.trim = function() {
      return  this.substring(Math.max(this.search(/\S/), 0),this.search(/\S\s*$/) + 1);
    }

    以截取方式取得空白部分(当然允许中间存在空白符),总共 调用了四个原生方法。设计得非常巧妙,substring以两个数字作为参数。Math.max以两个数字作参数,search则返回一个数字。速度比上 面两个慢一点,但比下面大多数都快。
    实现4

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

    这个可以称得上实现2的简化版,就是 利用候选操作符连接两个正则。但这样做就失去了浏览器优化的机会,比不上实现3。由于看来很优雅,许多类库都使用它,如jQuery与mootools

    实现5

    String.prototype.trim = function() {
      var str = this;
      str = str.match(/\S+(?:\s+\S+)*/);
      return str ? str[0] : '';
    }

    match 是返回一个数组,因此原字符串符合要求的部分就成为它的元素。为了防止字符串中间的空白符被排除,我们需要动用到非捕获性分组(?:exp)。由于数组可 能为空,我们在后面还要做进一步的判定。好像浏览器在处理分组上比较无力,一个字慢。所以不要迷信正则,虽然它基本上是万能的。

    实现6

    String.prototype.trim = function() {
      return this.replace(/^\s*(\S*(\s+\S+)*)\s*$/, '$1');
    }

    把符合要求的部分提供出来,放到一个空字符串中。不过效率很差,尤其是在IE6中。
    实现7

    String.prototype.trim = function() {
      return this.replace(/^\s*(\S*(?:\s+\S+)*)\s*$/, '$1');
    }

    和实现6很相似,但用了非捕获分组进行了优点,性能效之有一点点提升。
     

    实现8

    String.prototype.trim = function() {
      return this.replace(/^\s*((?:[\S\s]*\S)?)\s*$/, '$1');
    }

    沿着上面两个的思路进行改进,动用了非捕获分组与字符集合,用?顶替了*,效果非常惊人。尤其在IE6中,可 以用疯狂来形容这次性能的提升,直接秒杀火狐。

    实现9

    String.prototype.trim = function() {
      return this.replace(/^\s*([\S\s]*?)\s*$/, '$1');
    }

    这次是用懒惰匹配 顶替非捕获分组,在火狐中得到改善,IE没有上次那么疯狂。

    实现10

    String.prototype.trim = function() {
      var str = this,
      whitespace = ' \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000';
      for (var i = 0,len = str.length; i < len; i++) {
        if (whitespace.indexOf(str.charAt(i)) === -1) {
          str = str.substring(i);
          break;
        }
      }
      for (i = str.length - 1; i >= 0; i--) {
        if (whitespace.indexOf(str.charAt(i)) === -1) {
          str = str.substring(0, i + 1);
          break;
        }
      }
      return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';
    }
    

    我 只想说,搞出这个的人已经不是用牛来形容,已是神一样的级别。它先是把可能的空白符全部列出来,在第一次遍历中砍掉前面的空白,第二次砍掉后面的空白。全 过程只用了indexOf与substring这个专门为处理字符串而生的原生方法,没有使用到正则。速度快得惊人,估计直逼上内部的二进制实现,并且在 IE与火狐(其他浏览器当然也毫无疑问)都有良好的表现。速度都是零毫秒级别的。
    实现11

    String.prototype.trim = function() {
      var str = this,
      str = 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;
    }

    实现10已经告诉我们普通的原生字符串截取方法是远胜于正则替换,虽然是复杂一点。但只要正则 不过于复杂,我们就可以利用浏览器对正则的优化,改善程序执行效率,如实现8在IE的表现。我想通常不会有人在项目中应用实现10,因为那个 whitespace 实现太长太难记了(当然如果你在打造一个类库,它绝对是首先)。实现11可谓其改进版,前面部分的空白由正则替换负责砍掉,后面用原生方法处理,效果不逊 于原版,但速度都是非常逆天。
    实现12

    String.prototype.trim = function() {
      var str = this,
      str = str.replace(/^\s\s*/, ''),
      ws = /\s/,
      i = str.length;
      while (ws.test(str.charAt(--i)));
      return str.slice(0, i + 1);
    }

    实现10与实现11在写法上更好的改进版,注意说的不是性能速 度,而是易记与使用上。和它的两个前辈都是零毫秒级别的,以后就用这个来工作与吓人。

    展开全文
  • js去空格,js中本身没有trim函数。无法像其他程序语言使用trim、ltrim 或 rtrim取出空格。因为在js中却没有这3个内置方法,所以需要手工编写。下面的实现方法是用到了正则表达式,效率不错,并把这三个方法加入String...

    js去空格,js中本身没有trim函数。无法像其他程序语言使用trim、ltrim 或 rtrim取出空格。因为在js中却没有这3个内置方法,所以需要手工编写。

    下面的实现方法是用到了正则表达式,效率不错,并把这三个方法加入String对象的内置方法中去。

    写成类的方法格式如下:(str.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,"");

    }

    写成函数可以这样:(trim(str))

    function trim(str){ //删除左右两端的空格

    return str.replace(/(^\s*)|(\s*$)/g, "");

    }

    function ltrim(str){ //删除左边的空格

    return str.replace(/(^\s*)/g,"");

    }

    function rtrim(str){ //删除右边的空格

    return str.replace(/(\s*$)/g,"");

    }

    展开全文
  • js 去除string首尾空格

    2021-09-18 15:57:03
    // 过滤首尾空格 trim(str){ return str.replace(/(^\s*)|(\s*$)/g, ""); }
  • js去除字符串首尾空格

    千次阅读 2021-01-17 12:29:31
    大家可能会说js删除字符串首尾空格有什么好说的, 哪个不会啊。确实,大家应该都会, 现在浏览器都支持, 不支持的可以使用ployfill,代码如下if (!String.prototype.trim) {String.prototype.trim = function () {...
  • //去除首尾空格 osfipin.replace(/(^\s*)|(\s*$)/g, ""); //去除左边空格 osfipin.replace(/(^\s*)/g, ""); //去除右边空格 osfipin.replace(/(\s*$)/g, ""); //jq...
  • js实现去除首尾空格

    万次阅读 2015-12-23 11:11:53
    关于去掉两头空格,jquery库提供了$.trim()方法,可是JS呢,我写了.trim(),在FF里有效果,但在IE里就没效了。 原因:如果浏览器实现了trim(),就有,如果浏览器没实现,只能用正则替换。 function trimStr...
  • clearSpace(str){ if(str === null){ return str; } return str.replace(/(^\s*)|(\s*$)/g, ""); }
  • js去除字符串头尾空格 // js去除头尾空格 let str = " 2020-11-2 " function trim(str){ let start = 0 let end = 0 for(let i=0;i<str.length;i++){ if(str[i]!=' '){ start = i break //跳出整个循环...
  • 正则表达式——总结JS去掉首尾空格 http://blog.csdn.net/qq_33729889/article/details/55510648 js去除空格的方法目前共有12种: 实现1 String.prototype.trim = function() { return this.replace(/^\s\s*/...
  • javascript 去除字符串首尾空格

    千次阅读 2019-08-21 23:50:50
    1、substring()截取从第一个非空格字符的索引到最后一个非空格字符索引之间的所有字符,返回截取后的字符串 String.prototype.trimOne = function () { return this.substring(Math.max(this.search(/\S/), 0), ...
  • 2.去除首尾空格 /** * 去除字符串str头尾的空格 * @param str 字符串 * @return str去除头尾空格后的字符串。 */ function trim(str) { if(str == null) return "" ; // 去除前面所有的空格 while( str....
  • 去除首尾空格

    2019-07-25 11:43:34
    关于 JavaScript 里的 trim()/strip() 方法 在其他语言中常常用 trim()/strip() 方法脱不必要的空格等元素。 JavaScript 本身并不提供 trim() 方法,不过可以用正则表达式,通过给 String 对象增加 trim 方法的...
  • input文本框--去首尾空格

    千次阅读 2018-05-25 09:37:59
    JAVA_字符串去除首尾空格 //使用 Java 正则表达式,去除两边空格。 public static String delSpace( String str) throws Exception { if (str == null ) { return null ; } String ...
  • js 字符串去除收尾空格

    千次阅读 2018-05-17 18:03:31
    const strTrim = (str) =&gt; { return str.replace(/(^\s*)|(\s*$)/g, "");};一个简单的正则轻松解决
  • js正则---清除首尾空格 let str = " 清除首尾空格 "; let str2 = str.replace(/^\s+|\s+$/g, ""); console.log(str); console.log(str2+'123');
  • 去除字符串首尾空格

    2022-02-09 17:49:36
    trim() trim():去除字符串前后...//去除字符串前后的空格,trim(); let str = ' a b c '; console.log(str); console.log(str.length); console.log(str.trim()); console.log(str.trim().length); 打印结果: ...
  • let str = ' lifestory ' console.log(str.length)//15 function trim(str){ return str.replace(/(^\s*)|(\s*$)/g,'') } console.log(trim(str).length)//9
  • js去掉首尾空格字符

    千次阅读 2017-07-05 10:34:18
    js正则表达式去掉首尾空格、首空格以及尾空格。
  • 正则表达式 去首尾空格

    千次阅读 2020-02-10 14:29:36
    去首尾空格: swq.replace(/^\s*|\s*$/g, ‘’) <!doctype html> <html lang="en" data-framework="backbonejs"> <head> <meta charset="utf-8"> <title>正则去首尾空格</...
  • // 去除前面所有的空格 while (str.charAt(0) == ’ ') { str = str.substring(1, str.length) } // 去除后面的空格 while (str.charAt(str.length - 1) == ’ ') { str = str.substring(0, str.length - 1) } ...
  • JS自动去首尾空格

    2020-03-16 09:13:33
    自动替换表单中的首尾空格 οnkeyup="this.value=this.value.replace(/^\s+|\s+$/g,'')
  • 需求:要求所有的input框提交前自动去除首尾空格,全部都是空格就全部去除。 最简单的办法是在提交前对数据作处理,但是这样会带来很多的重复性工作,所以需要把这层逻辑抽取出 来。 一、React的做法 目前用的是
...
  • 主要介绍了JS使用正则实现去掉字符串左右空格的方法,结合实例形式分析了JS针对首尾匹配及空格匹配的简单实现技巧,需要的朋友可以参考下
  • antdesgin vue table 表格自动不去除首尾空格的问题

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,493
精华内容 6,597
关键字:

js 去收尾空格