在Javascript中有一个类似于';切片';但是对边界上的元素有更多的控制吗?

在Javascript中有一个类似于';切片';但是对边界上的元素有更多的控制吗?,javascript,typescript,Javascript,Typescript,我需要使用变量start和end index动态地处理一个字符串,获取其中的一部分。我知道有三个主要函数可以在javascript中操作字符串剪切: 尽管切片、子字符串和子字符串存在一些问题: 采用开始索引,不采用结束索引。控制这样的行为将是非常好的,比如有两个以上的参数,以便您可以选择包括或不包括第一个和最后一个索引字符 在我的例子中,开始和结束是动态的,所以开始=结束可能发生。在本例中,函数返回空字符串,而在这种情况下,我希望返回的是索引start=end处的单个字符 javascrip

我需要使用变量start和end index动态地处理一个字符串,获取其中的一部分。我知道有三个主要函数可以在javascript中操作字符串剪切:

尽管切片、子字符串和子字符串存在一些问题:

  • 采用开始索引,不采用结束索引。控制这样的行为将是非常好的,比如有两个以上的参数,以便您可以选择包括或不包括第一个和最后一个索引字符
  • 在我的例子中,开始和结束是动态的,所以开始=结束可能发生。在本例中,函数返回空字符串,而在这种情况下,我希望返回的是索引start=end处的单个字符

javascript或typescript中有一个函数,我目前缺少,可以满足这些功能中的一个或所有功能?

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

那么有几个优点

  • 然后可以使用所有阵列功能,如
    拼接
    映射

  • Unicode处理正确。。如果你有一个glyth不能放在一个UTF16码点中,它就不会被分成两部分

  • 例如

    //一个包含2个glyth的字符串。
    
    var astring=“你不能只在结束索引中添加1吗?现在它将被包括在内,并且在开始和结束endex相同时返回一个字符

    let str = "hallo"
    let start = 2
    let end = 4
    let result = str.substring(start,end+1)
    console.log(result)
    

    构建您自己的版本?显然……虽然有一些更“正式”的东西,而且构建得更好,但我可以做到是的,我没有注意到这样一个事实,即如果end大于其长度,它将一直持续到数组的末尾。如果start=end,这并不能解决问题,但这可以通过在start=end索引处返回char的自定义函数轻松解决(使用字符)如果它们相同。非常感谢!请记住,在处理增强型unicode时,这一切都失败了,…例如,
    “ha