JS RegEx基于组查找和替换

时间:2017-01-12 16:49:50

标签: javascript regex str-replace regex-group

我正在尝试搜索两个字符:1。', '和2. '('。因此,如果找到逗号和空格,则只用逗号代替,如果找到(替换为空格。

以下是我的内容,我知道我可以做两次替换,但是正在考虑使用可能的群组合成一个......就像$1 ='' $2 = ','一样?

str.replace(/(\()|(,\s)/g, '');

3 个答案:

答案 0 :(得分:0)

您可以使用捕获的组和反向引用:

str = str.replace(/(,) |\(/g, '$1');

代码示例:



var str = 'abc, 123( something.'
console.log(str.replace(/(,) |\(/g, '$1'))
//=> "abc,123 something."




RegEx Demo

答案 1 :(得分:0)

replace函数接受函数作为第二个参数。您可以使用它将任何匹配替换为您想要的任何匹配。函数的第一个参数是匹配的字符串。

查看更多详情here.

答案 2 :(得分:0)

两个步骤:

替换','到','

const regex = /(\,\s)/gm;
const str = `abc, 123( something.`;
const subst = `,`;

// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);

console.log('Substitution result: ', result);

替换')'到'

const regex = /(\()/gm;
const str = `abc, 123( something.`;
const subst = ``;

// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);

console.log('Substitution result: ', result);

混合解决方案:



    regex = /(\,\s)/gm;
    str = `abc, 123( something.`;
    subst = `,`;
    
    // The substituted value will be contained in the result variable
    result = str.replace(regex, subst);
    
    regex = /(\()/gm;
    str = result;
    subst = ``;
    
    // The substituted value will be contained in the result variable
    result = str.replace(regex, subst);
    //
    console.log(result);




如果我帮助你,请记得将我标记为问题的答案