【问题标题】:Keep only first n characters in a string?只保留字符串中的前 n 个字符?
【发布时间】:2011-12-04 06:16:25
【问题描述】:

在 JavaScript 中有没有办法删除字符串的结尾?

我只需要保留字符串的前 8 个字符并删除其余字符。

【问题讨论】:

    标签: javascript


    【解决方案1】:

    const result = 'Hiya how are you'.substring(0,8);
    console.log(result);
    console.log(result.length);

    您正在寻找 JavaScript 的 String 方法 substring

    例如

    'Hiya how are you'.substring(0,8);
    

    返回从第一个字符开始并在第 9 个字符之前结束的字符串 - 即“Hiya how”。

    substring documentation

    【讨论】:

    • 奇怪的是 javascript 中没有 str.left(n); 函数。显然它应该返回字符串最左边的n 字符。就像str.slice(-n); 返回字符串最右边的n 字符...
    【解决方案2】:

    你可以使用String.slice:

    var str = '12345678value';
    var strshortened = str.slice(0,8);
    alert(strshortened); //=> '12345678'
    

    使用这个,字符串扩展可以是:

    String.prototype.truncate = String.prototype.truncate ||
      function (n){
        return this.slice(0,n);
      };
    var str = '12345678value';
    alert(str.truncate(8)); //=> '12345678'
    

    See also

    【讨论】:

    • +1 因为 str.slice() 允许您将第二个参数设为负数,从后面开始计数,这与 str.substring 不同:"abcdef".slice(0, -2) == "abcd"
    【解决方案3】:

    使用子字符串函数
    看看这个http://jsfiddle.net/kuc5as83/

    var string = "1234567890"
    var substr=string.substr(-8);
    document.write(substr);
    
    Output >> 34567890
    

    substr(-8) 将保留最后 8 个字符

    var substr=string.substr(8);
    document.write(substr);
    
    Output >> 90
    

    substr(8) 将保留最后 2 个字符

    var substr=string.substr(0, 8);
    document.write(substr);
    
    Output >> 12345678
    

    substr(0, 8) 将保留前 8 个字符

    看看这个 string.substr(start,length)

    【讨论】:

    • 会删除还是保留最后 8 个字符?
    【解决方案4】:
    var myString = "Hello, how are you?";
    myString.slice(0,8);
    

    【讨论】:

      【解决方案5】:

      你可以试试:

      myString.substring(0, 8);
      

      【讨论】:

      • (0,7) 将给出前 7 个字符
      • 是的,你是对的,第二个索引是一个停止点,不包含在返回值中。固定。
      【解决方案6】:

      使用string.substring(from, to)API。在你的情况下,使用string.substring(0,8).

      【讨论】:

        【解决方案7】:

        你可以使用.substring,它返回一个字符串的药水:

        "abcdefghijklmnopq".substring(0, 8) === "abcdefgh"; // portion from index 0 to 8
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-03-16
          • 2014-06-19
          • 1970-01-01
          • 2016-02-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多