用regex JS替换字符串中的字符

时间:2017-05-26 17:26:59

标签: javascript regex character

我想使用正则表达式替换字符串中的多个字符。我要交换字母A和T以及G和C.

function replacer(string) {

return "String " + string + " is " + string.replace(/A|T|G|C/g, 
"A","T","G","C");


}

我的正则表达式是否正确?

thankls

3 个答案:

答案 0 :(得分:3)

我建议将第一个参数是匹配字符的replace回调与来自字符的地图相结合 - >更换如下:



// Swap A-T and G-C:
function replacer(string) {
  const replacements = {'A': 'T', 'T': 'A', 'G': 'C', 'C': 'G'};
  return string.replace(/A|T|G|C/g, char => replacements[char]);
}

// Example:
let string = 'ATGCCTCG';
console.log('String ' + string + ' is ' + replacer(string));




答案 1 :(得分:1)

ATGC - 看起来您指的是DNA碱基对:)

目标是将ATGC交换。假设输入字符串从不包含字符Z,使用正则表达式的简单交换函数:

注意:使用您确信不会出现在输入字符串中的其他字符或符号更改Z。示例$可能吗?

var input = "AAATTGGCCTAGC"
input = input.replace(/A/g,"Z").replace(/T/g,"A").replace(/Z/g,"T");
input = input.replace(/G/g,"Z").replace(/C/g,"G").replace(/Z/g,"C");
console.log(input);

答案 2 :(得分:1)

你也可以这样做:



function replacer(string) {
    var newString = string.replace(/([ATGC])/g, m =>
    {
    	switch (m) {
          case 'A': return 'T';
          case 'T': return 'A';
          case 'G': return 'C';
          case 'C': return 'G';
      }
    });
    return "String " + string + " is " + newString;
}

console.log(replacer('GATTACAhurhur'));