2016-09-14 9 views
0

複数回出現した場合、指定された文字を削除したいと思います。文字列の特定の文字を置換する方法javascripts

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);

指定されたcharは*であると私は、文字列から他の*を削除したいと思います。

この出力は12313*1231313です。

+0

'input [i] = '''でしようとしているように、文字列を変更することはできません。 –

答えて

2

lastIndexOfsubstringを使用して簡単な解決策:

この溶液わずか2つの出現で動作:

:これは、N個の出現で動作前回のリファクタリングである
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);

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);

+1

これは、アスタリスクの後に続く1つだけを削除します。 –

+0

@torazaburoそれは私が欲しいものです –

+0

@torazaburoあなたは正しいです、質問は十分ではないので、彼は何が必要なのか分かりません。とにかく、リファクタリングされたバージョンを追加してすべてのオカレンスを削除しました。ありがとう! – ianaya89

関連する問題