2016-07-09 8 views
0

私は最終的な出力は、それが提供している溶液中括弧内の文字を置換する効率的な方法は何でしょうか?

function test() 
{ 
    var input = '(a-d){12-16},(M-Z){5-8},[@$%!^,12+-,23^!]'; //input string 
    var splitByFirstBracket = input.split("["); //split the input by [ character  

    //merge the arrays where the second array is replaced by '' for ',' 
    var output = splitByFirstBracket[0] + '[' + splitByFirstBracket[1].replace(/,/g,'');  
    alert(output); 
} 

により

var output = (a-d){12-16},(M-Z){5-8},[@$%!^12+-23^!] 

であろうように、角括弧内のカンマを削除する必要が入力

var input = (a-d){12-16},(M-Z){5-8},[@$%!^,12+-,23^!] 

以下有します正しく出力されます。より良い方法がありますか?私はJavaScriptとJQueryの両方を公開しています

ありがとうございます。

+0

私が何か 'input.replace(/ \求めることができ、この[コードレビュー](http://codereview.stackexchange.com) – guradio

答えて

2

正規表現の置き換えを使用できます。置き換えは、正規表現でマッチした入力の部分を受け取って、置換を計算する関数とすることができます。この場合、別の置換呼び出しを使用してコンマを削除します。

var input = '(a-d){12-16},(M-Z){5-8},[@$%!^,12+-,23^!]'; //input string 
 
var output = input.replace(/\[.*?\]/g, function(match) { 
 
    return match.replace(/,/g, ''); 
 
}); 
 
console.log(output);

+0

barmarに掲示しなければならない[を。*?\]/g、function(match){'これは' match 'と等しい '[@ $%!^、12 + - 、23 ^!] ); 'が削除されます'、 '間違っていれば正解してどうしたのか分かります..ありがとうございます – guradio

+1

それはどのように動作しますか?関数は引数として正規表現に一致する文字列の一部を受け取ります。それが返ってきたものがあればそれを置き換えます。 – Barmar

関連する問題