Я пытаюсь добавить запятую после некоторой длины символа, но мне это не удается, потому что мой случай отличается. Чего я хочу добиться, я хочу вставить запятую после длины символа, например (1,23,433,4444,55555) до. Если, например, символ (123). Затем я хочу вставить запятую после 1
(1,23). Если символов (123433), то я хочу вставить запятую (1,23,433). Может кто-нибудь, пожалуйста, помогите мне, как решить эту проблему.
Спасибо
Код
Convert = (x) => {
x = x.toString()
var lastThree = x.substring(x.length - 2)
var otherNumbers = x.substring(0, x.length - 3)
if (otherNumbers != '') lastThree = ',' + lastThree
var res = otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g, ',') + lastThree
return res
}
Вы хотите вставлять запятые с увеличением количества цифр между ними? Например, для ввода 122333444455555666666
вы ожидаете вывод 1,22,333,4444,55555,666666
Вы можете сделать следующее,
a = '123433444455555';
const convert = (str) => {
let step = 1;
let end = 0;
while(end + step < str.length -1) {
str = [str.slice(0, end+step), ',', str.slice(end+step)].join('');
step++;
end = end + step;
}
return str;
}
let ret = convert(a);
console.info(ret);
Вы также можете попробовать это:
testCase = '123433444455555';
let convert = ([...x]) => {
let i = 1, subStrings = [];
while (x.length) {
subStrings.push(x.splice(0, i).join(""));
i += 1;
}
return subStrings.join(",")
}
let result = convert(testCase);
console.info(result);
Используя Array.splice, мы создадим промежуточный массив подстрок возрастающей длины. Splice вернет всю строку, если вы попытаетесь соединить больше, чем текущая длина.
После того, как число было правильно разделено, мы просто присоединяем его к ,
и возвращаем результат.
Не могли бы вы объяснить, что означает «после некоторой длины символа»? Вы хотите каждый раз увеличивать расстояние между запятыми, например, начинать с 1 символа, затем 2 символа, 3 символа и так далее?