如果多次出现,我想删除给定的char。
var input = "12313*12313*13";
var count = (input.match(/[*]/g) || []).length;
if (count > 1)
{
x = 0;
for (var i = 0, len = input.length; i < len; i++) {
if (input[i] == '*')
{
if (x == 0)
{
x++;
continue;
}
input[i] = '';
}
}
}
console.log(input);
给定的字符为*
,我想从字符串中删除其他*
。
我希望输出12313*1231313
。
答案 0 :(得分:2)
使用lastIndexOf
和substring
的简单解决方案:
此解决方案仅适用于2次:
var input = "12313*12313*13";
var count = (input.match(/[*]/g) || []).length;
if (count > 1) {
var i = input.lastIndexOf('*');
input = input.substring(0, i) + input.substring(i + 1);
}
console.log(input);
这是前一个的重构,它适用于N次出现:
var input = "12313*12313*13*12*13232*12312";
var count = (input.match(/[*]/g) || []).length;
var i;
while(count > 1) {
i = input.lastIndexOf('*');
input = input.substring(0, i) + input.substring(i + 1);
count--;
}
console.log(input);