長さが 8 文字を超えることのない文字列を作成します。たとえば、次のようになります。
// represented as array to demonstrate multiple examples
var strs = [
'11111111',
'1RBN4',
'12B5'
]
関数を実行すると、すべての数字文字が合計されて最終的な文字列が返されます。
var strsAfterFunction = [
'8',
'1RBN4',
'3B5'
]
1
最初の文字列の 8 つの単一文字すべてが単一の文字列として終了するのを見ることができますが8
、2 番目の文字列は変更されません。隣接する数字文字が存在しないため、3 番目の文字列は1
と2
文字が a3
になり、残りの部分が変化します。文字列の変更はありません。
疑似コードでこれを行う最良の方法は次のようになると思います。
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