代码之家  ›  专栏  ›  技术社区  ›  Tom Hanson

对于长字符串,javascript子字符串不能按预期工作

  •  0
  • Tom Hanson  · 技术社区  · 6 年前

    我有一个非常长的字符串,其中包含来自富文本编辑器的代码。我需要把它分成4个部分保存到数据库中。我在做这个。

    var fullPart = $('#summernote').summernote('code').replace("'", "\'");
    var markupStr = fullPart.substring(0, 3000000);
    var markupStr2 = fullPart.substring(3000000, 3000000);
    var markupStr3 = fullPart.substring(6000000, 3000000);
    var markupStr4 = fullPart.substring(6000000);
    

    markupstr、markupstr3和markupstr4都包含值,但markupstr2为空。我做错什么了?

    2 回复  |  直到 6 年前
        1
  •  3
  •   Vikasdeep Singh    6 年前

    var markupStr2 = fullPart.substring(3000000, 3000000);

    解释 :开始索引和结束索引是相同的,这就是为什么您得到空结果的原因。

    检查 here 更多信息。

    str.substring(indexStart[, indexEnd])

    索引开始 要包含在返回的 子字符串。

    索引结束 可选。要从中排除的第一个字符的索引 返回的子字符串。

        2
  •  0
  •   Wais Kamal    6 年前

    这是一个简单的错误。 fullpart.substring(3000000,3000000) 将返回长度为3000000-3000000个字符(0个字符)的字符串。正确的方法是:

    var fullPart = $('#summernote').summernote('code').replace("'", "\'");
    var markupStr = fullPart.substring(0, 3000000);
    var markupStr2 = fullPart.substring(3000000, 6000000);
    var markupStr3 = fullPart.substring(6000000, 9000000);
    var markupStr4 = fullPart.substring(12000000);