2017-06-22 12 views
-1

括弧で囲まれていない場合にのみカンマを置き換えることはできますか?Javascript/regex:大括弧で囲まれていない場合にのみカンマを削除してください。

filters=fuelType=D&make=[BMW,CITROEN,DACIA]&price=(0,100)

+0

あなたは '&'で置き換えると思われます。質問を再フォーマットして何を持っているのかを追加する必要があります。これは助け/私の場所ではありません。 – Hitmands

+0

大括弧の中に物事を見つけたり、物を見つけたりしないことについて、何十もの質問があります。それらを検索してください。基本的な考え方は、**ブラケット付きの式**または**を検索して置き換えたいものを探してから、後者のみを置き換えることです。 –

+2

ここで解決しようとしている実際の問題について、より広い文脈を提供できますか?どのようにカンマ区切りの文字列で始まりましたか?おそらく、(おそらく)その文字列に混乱する正規表現を適用するのではなく、URLパラメータを構築する方がずっと簡単です。 –

答えて

1

これは、あなたがしたい正規表現です:/,\s*(?=[^)^\]]*(?:\(|\[|$))/g

はここString.prototype.replace()を使用して&ため[]()外にあなたの文字列のカンマを置き換えるのjsフィドルです:

var string = 'filters=fuelType=D,make=[BMW,CITROEN,DACIA],price=(0,100)'; 
var result = string.replace(/,\s*(?=[^)^\]]*(?:\(|\[|$))/g, '&'); 
alert(result); // -> `filters=fuelType=D&make=[BMW,CITROEN,DACIA]&price=(0,100)` 

https://jsfiddle.net/tmms2mck/

これに filters=fuelType=D,make=[BMW,CITROEN,DACIA],price=(0,100)

正規表現の正規表現の説明は次のとおりです:https://regex101.com/r/hAuEQm/1

関連する問題