繁体   English   中英

用正则表达式JS替换字符串中的字符

[英]replace characters in string with regex JS

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

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

我的正则表达式正确吗?

谢谢

我建议将第一个参数是匹配字符的replace回调与来自character-> replace的映射结合起来,如下所示:

 // Swap AT and GC: 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)); 

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

目的是将AT交换, A GC交换。 假设输入字符串从不包含字符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); 

您也可以这样进行:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM