gpt4 book ai didi

javascript - JS 拆分包含数字的字符串返回包含空元素的数组

转载 作者:行者123 更新时间:2023-11-28 12:56:22 34 4
gpt4 key购买 nike

给定一个字符串,例如 foo123 并将其拆分,以便使用 split(/(\d+)/g) 分隔整数和字符,返回一个包含空元素的数组在最后

let str  = 'foo123'
let splits = str.split(/(\d+)/g)
console.log(splits)

输出:

[ 'foo', '123', '']

当我期待 [ 'foo', '123'] 时,为什么会发生这种情况以及如何从整数中分割字符而末尾没有空元素?此外,当输入字符串为例如 foo123bar 时, split 方法不会返回空元素。

最佳答案

why does this happen

您正在使用数字序列作为分隔符。分隔符将左侧与右侧分开。在您的示例中,分隔符位于字符串的末尾,因此右侧为空(-> 空字符串)。

Why split method doesn't return empty element when the input string is e.g foo123bar ?

因为字符串不以您的分隔符结尾

这与使用任何其他值作为分隔符没有什么不同

console.log('foo,'.split(','));
console.log('foo,bar'.split(','));

使用正则表达式的特殊之处在于,如果分隔符是捕获组的一部分,则分隔符本身会包含在输出中。

<小时/>

如果输入始终具有相同的结构,即字母后跟数字,我只需找到第一个数字的索引,然后相应地对字符串进行切片:

function split(str) {
const match = str.match(/\d/);
if (match) {
return [str.slice(0, match.index), str.slice(match.index)];
}
return [str];
}

console.log(split('foo123'));

关于javascript - JS 拆分包含数字的字符串返回包含空元素的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55169813/

34 4 0
文章推荐: javascript - Typescript 中的抽象类 v 单例 v 公共(public)静态
文章推荐: javascript - 如何将每个图像添加到
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com