代码之家  ›  专栏  ›  技术社区  ›  Sasha Grievus

在JavaScript中,有一个类似于“slice”的函数,但是对边界上的元素有更多的控制?

  •  -2
  • Sasha Grievus  · 技术社区  · 8 年前

    我需要使用变量的开始和结束索引动态地处理一个字符串,其中的一部分。我知道有三个主要的函数可以在javascript中操作字符串切割: Javascript string functions

    slice、substr和substring,尽管有一些问题:

    • 取开始索引,不取结束索引。控制这样的行为是很好的,比如多了两个参数,这样您就可以选择是否包含第一个和最后一个索引字符。
    • 在我的例子中,开始和结束是动态的,所以它可能发生在开始=结束。在这种情况下,函数返回空字符串,而在这种情况下,我期望的返回是索引start=end处的单个字符

    javascript或typescript中有一个函数,我目前还没有,它可以满足这些特性中的一个或全部?

    2 回复  |  直到 8 年前
        1
  •  1
  •   Kokodoko    8 年前

    _t您可以只在结束索引中添加1吗?现在它将被包括在内,并且在开始和结束endex相同时返回一个字符。

    let str = "hallo"
    let start = 2
    let end = 4
    let result = str.substring(start,end+1)
    console.log(result)
    
        2
  •  2
  •   Keith    8 年前

    在处理javascript中的字符串时,如果您想做一些有趣的事情,通常最好将其转换为数组。

    那么有几个优点。

    1. 然后可以使用所有数组函数,比如 splice , map 等。。

    2. Unicode处理正确..如果你有一个不能放在UTF16码位中的glyth,它就不会被拆分为2。

    如。

    //a string with 2 glyths.
    var astring = "🙏😿";
    //oops, length says 4..
    console.log(astring);
    console.log("String length: " + astring.length);
    
    var a = Array.from(astring);
    console.log("As array: " + a.length);
    //ah that's better says 2 now
    
    //lets remove the first glyth
    console.log("Lets remove first glyth");
    a.splice(0,1);
    //now join back to create new string.
    console.log(a.join(""));
    推荐文章