从大括号内替换字符的有效方法是什么?

时间:2016-07-09 04:55:43

标签: javascript jquery

我有以下输入

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

我需要删除方括号内的逗号,以便最终输出为

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

通过解决方案

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

正确提供输出。有没有更好的方法 - 我对 JavaScript和JQuery 都开放。

提前致谢

1 个答案:

答案 0 :(得分: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);