我将有一个字符串的长度不会漫长超过8个字符,如:JavaScript的分割字符串的正则表达式
// represented as array to demonstrate multiple examples
var strs = [
'11111111',
'1RBN4',
'12B5'
]
当通过函数跑了,我想所有的数字字符来概括返回一个最终的字符串:
var strsAfterFunction = [
'8',
'1RBN4',
'3B5'
]
在这里你可以看到所有的8个单1
字符的第一个字符串中最终成为一个8
字符串,第二个字符串保持不变,因为在任何时候都存在相邻数字字符,第三串改变为1
和2
字符变成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
正则表达式由多个adajcent数字字符分割,如:
var str = '12RB1N1'
=> ['12', 'R', 'B', '1', 'N', '1']
编辑:
问题: 什么字符串 “999” 应该的结果是 “27” 或 “9”
如果是明确的,始终总和数字,999
=>27
,234
=>9
什么字符串“999”应该的结果是“27”或“9” –
我必须使用正规? – Shanimal
@MarshallAnschutz已回答你的问题 - 总是SUM数字 – Harry