gpt4 book ai didi

JavaScript 通过正则表达式拆分字符串

转载 作者:数据小太阳 更新时间:2023-10-29 05:42:48 24 4
gpt4 key购买 nike

我将有一个长度不超过 8 个字符的字符串,例如:

// represented as array to demonstrate multiple examples
var strs = [
'11111111',
'1RBN4',
'12B5'
]

当运行一个函数时,我希望将所有数字字符相加以返回最终字符串:

var strsAfterFunction = [
'8',
'1RBN4',
'3B5'
]

您可以看到第一个字符串中的所有 8 个单个 1 字符最终都变成了单个 8 字符串,第二个字符串在任何时候都保持不变是否有相邻的数字字符和第三个字符串随着 12 字符变为 3 而字符串的其余部分不变。

我认为最好的伪代码方式是:

1. split the array by regex to find multiple digit characters that are adjacent
2. if an item in the split array contains digits, add them together
3. join the split array items

用多个相邻数字字符拆分的 .split 正则表达式是什么,例如:

var str = '12RB1N1'
=> ['12', 'R', 'B', '1', 'N', '1']

编辑:

问题:如果结果是“27”或“9”,那么字符串“999”呢?

如果很清楚,总是对数字求和,999 => 27, 234 => 9

最佳答案

您可以对整个转换执行此操作:

var results = strs.map(function(s){
return s.replace(/\d+/g, function(n){
return n.split('').reduce(function(s,i){ return +i+s }, 0)
})
});

对于您的 strs 数组,它返回 ["8", "1RBN4", "3B5"]

关于JavaScript 通过正则表达式拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17051955/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com