【问题标题】:Remove part of String in JavaScript在 JavaScript 中删除部分字符串
【发布时间】:2015-04-15 12:56:53
【问题描述】:

我有一个类似

的字符串
var str = "test\ntesttest\ntest\nstringtest\n..."

如果我在字符串中达到了配置的行数 ('\n'),我想删除第一行。这意味着第一个'\ n'的所有文本。

之前:

var str = "test1\ntesttest2\ntest3\nstringtest4\n...5"

之后:

var str = "testtest2\ntest3\nstringtest4\n...5"

我可以使用 Javascript 中的函数吗?

感谢您的帮助!

【问题讨论】:

    标签: javascript string substring


    【解决方案1】:

    找到\n的第一次出现并只返回它之后的所有内容

    var newString = str.substring(str.indexOf("\n") + 1);
    

    + 1 表示您还删除了换行符,以便新字符串的开头仅是原始字符串中第一个 \n 之后的文本。

    【讨论】:

    • 应该是str.substring(str.indexOf("\n")+1)
    【解决方案2】:

    你也可以使用string.replace函数。

    > var str = "test1\ntesttest2\ntest3\nstringtest4\n...5"
    > str.replace(/.*\n/, '')
    'testtest2\ntest3\nstringtest4\n...5'
    

    【讨论】:

    • 哪种方案更高效?替换还是子串?
    【解决方案3】:
    str.substr(str.indexOf("\n")+1)
    

    str.indexOf("\n")+1 获取第一个换行符后第一个字符的索引。 str.substr(str.indexOf("\n")+1) 获取从该索引开始的str的子串

    【讨论】:

      【解决方案4】:

      如果我理解正确,你可以编写这样的函数

      function removePart(str, count) {  
          var strCount = str.split('\n').length - 1;
          if(count > strCount) {   
              var firstIndex = str.indexOf('\n');
              return str.substring(firstIndex, str.length -1);
          }
          return str;
      }
      

      【讨论】:

        【解决方案5】:

        您可以使用substring(..) 函数。它内置于 JavaScript。来自文档:

        substring() 方法从字符串中提取两个指定索引之间的字符,并返回新的子字符串。

        用法:

        mystring.substring(start,end)

        开始索引是必需的,结束索引不是。如果省略结束索引,它将从字符串的开头到结尾的子字符串。

        或者在你的情况下,类似:

        str = str.substring(str.indexOf('\n')+1);

        【讨论】:

        • 如果您向提出问题的人解释代码的作用(原始海报)会很有帮助,因为 OP 显然是 JavaScript 字符串解析的新手...
        猜你喜欢
        • 2012-01-21
        • 1970-01-01
        • 2017-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多