【问题标题】:How do I replace multiple letters in an array or string in NodeJS如何在NodeJS中替换数组或字符串中的多个字母
【发布时间】:2019-11-03 22:44:01
【问题描述】:

我尝试了一些谷歌搜索,但没有取得多大成功。 我想要做的是将字符串中的每个字母更改为其他内容。例如 “这是一个字符串” 会变成类似的东西 “&@/- 52 - .'49-!”

到目前为止,我的字符串/短语为

    let phrase = ['a', 'b', 'c'];

然后

    phrase = phrase.map(phrase => {
    return phrase.replace('a', '-');
    return phrase.replace('b', '!');
    return phrase.replace('c', ',');
    return phrase.replace('d', ';'); 
    return phrase.replace('e', ',');
    return phrase.replace('f', '(');

.. 一直到 Z,然后

    });
    console.log(phrase); 

当我运行它时,我得到这个输出

    [ '-', 'b', 'c' ]

但应该是这样的

    [ '-', '!', ',' ]

这意味着它只是“翻译”第一个字母并跳过其余字母,而我需要它来翻译整个字符串。

如果有人能指出我正确的方向,我将不胜感激 :)

【问题讨论】:

    标签: javascript arrays node.js string


    【解决方案1】:

    我会改用replace: replaceWith 组织的对象:

    const replacements = {
      a: '-',
      b: '!',
      c: ',',
      d: ';',
      e: ',',
      f: '('
    };
    const input = ['a', 'b', 'c'];
    const output = input.map(inputPhrase => replacements[inputPhrase]);
    console.log(output);

    如果要替换的短语可以包含不能是裸键的字符,请将它们括在字符串中:

    const replacements = {
      a: '-',
      b: '!',
      c: ',',
      d: ';',
      e: ',',
      f: '(',
      '###': 'foo'
    };
    const input = ['a', 'b', 'c', '###'];
    const output = input.map(inputPhrase => replacements[inputPhrase]);
    console.log(output);

    【讨论】:

      【解决方案2】:

      return 退出函数 - 或者每次重新分配 phrase

      let phrase = ['a', 'b', 'c'];
      
      phrase = phrase.map(phrase => {
        phrase = phrase.replace('a', '-');
        phrase = phrase.replace('b', '!');
        phrase = phrase.replace('c', ',');
        phrase = phrase.replace('d', ';');
        phrase = phrase.replace('e', ',');
        return phrase.replace('f', '(');
      });
      
      console.log(phrase);

      或者使用一个对象(使用toLowerCase 来避免区分大小写 - 如果您想要aA 使用不同的字符,只需将其删除):

      let phrase = ['a', 'b', 'c'];
      
      const replace = {
        "a": "-",
        "b": "!",
        "c": ",",
        "d": ";",
        "e": ",",
        "f": "("
      };
      
      phrase = phrase.map(phrase => replace[phrase.toLowerCase()]);
      
      console.log(phrase);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-07
        • 2022-09-24
        • 2021-03-10
        • 1970-01-01
        • 2016-02-01
        相关资源
        最近更新 更多