替换JavaScript中的多个字符

时间:2014-12-02 01:07:23

标签: javascript

我正在尝试编写一个函数,其中参数是一个字符串,需要替换一个特定的字符。然后它会给出一个包含已转换字符串的警告框。

我有以下代码,但它无效。我还想要alert()转换后的字符串。

function encryption(aString){
    return aString.replace(/a/g, '@')
      .replace(/e/g, '()')
      .replace(/h/g, '#')
      .replace(/l/g,'1')
      .replace(/r/g,'+')
      .replace(/s/g.'$')
      .replace(/v/g,'^')
      .replace(/x/g,'*');
}

2 个答案:

答案 0 :(得分:1)

乍一看,我在这里看到一个拼写错误

.replace(/s/g.'$')

应该是

.replace(/s/g,'$')

修复拼写错误

后,您可以看到它正常工作here

答案 1 :(得分:1)

这里有两个问题:

.replace(/s/g.'$')

句点应为逗号,$字符用于替换字符串中的替换代码,因此您必须将其转义为$$

.replace(/s/g, '$$')

您可以使用单个替换而不是链接所有替换:



function encryption(aString){
  return aString.replace(/[aehlrsvx]/g, function (m) {
    return m == 'e' ? '()' : '@#1+$^*'['ahlrsvx'.indexOf(m)];
  });
}

// display result in StackOverflow snippet
document.write(encryption('The quick brown fox jumps over the lazy brown dog.'));