在JavaScript中有任何Perl喜欢的翻译吗?

时间:2016-03-17 06:18:38

标签: javascript regex

是否有任何内置函数用于将每个字符串转换为JavaScript中的另一个字符串?

例如

A <=> T

G <=> C 

我的输入字符串AAATATATTGC我希望转换所有A to T T to A C to G G to C。我想输出的是TTTATATAACG

在Perl中,对于这种情况很容易做到。

my $s = "AAATATATTGC";  
$s =~tr/ATGC/TACG/;

我得到了结果。

与perl一样,在JavaScript中可以采用任何可行的方式。?

2 个答案:

答案 0 :(得分:3)

您可以使用String#replace进行回调。

// An object to use as replacement
var replacement = {
    A: 'T',
    T: 'A',
    C: 'G',
    G: 'C'
};

// Match a single upperCase character from given characters
var result = 'AAATATATTGC'.replace(/[ATCG]/g, function(_) {
    return replacement[_]; // Use the value of the key as replacement
});

document.body.innerHTML = result;

答案 1 :(得分:1)

使用新的Map构造稍微改变以避免手动编码的回调,这可以比将函数绑定到闭包变量更可重用和可组合:

// replacements:
var reps= new Map([
    ['A','T'],
    ['T','A'],
    ['C','G'],
    ['G','C']
]);

var result = 'AAATATATTGC'.replace(/[ATCG]/g, reps.get.bind(reps));
// == "TTTATATAACG"

地图作为查找表模式也更有用,因为0"0"[0]都可以是不同的查找键......