Javascript/regex: 逗号不在括号内才去掉
Javascript/regex: Remove comma only if it is not in brackets
只有不在括号里的逗号才可以替换吗
例如
filters=fuelType=D,make=[BMW,CITROEN,DACIA],price=(0,100)
对此:
filters=fuelType=D&make=[BMW,CITROEN,DACIA]&price=(0,100)
这是您想要的正则表达式:/,\s*(?=[^)^\]]*(?:\(|\[|$))/g
这是 js fiddle 使用 String.prototype.replace()
替换 []
和 ()
之外的 &
字符串逗号:
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/
下面是这个正则表达式的 regex101 解释:https://regex101.com/r/hAuEQm/1
只有不在括号里的逗号才可以替换吗
例如
filters=fuelType=D,make=[BMW,CITROEN,DACIA],price=(0,100)
对此:
filters=fuelType=D&make=[BMW,CITROEN,DACIA]&price=(0,100)
这是您想要的正则表达式:/,\s*(?=[^)^\]]*(?:\(|\[|$))/g
这是 js fiddle 使用 String.prototype.replace()
替换 []
和 ()
之外的 &
字符串逗号:
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/
下面是这个正则表达式的 regex101 解释:https://regex101.com/r/hAuEQm/1