【问题标题】:Function to receive an array of characters and return a string with the characters a-z, A-Z and 0-9接收字符数组并返回包含字符 a-z、A-Z 和 0-9 的字符串的函数
【发布时间】:2020-10-27 19:08:46
【问题描述】:

我正在尝试创建一个名为wipe 的函数,该函数接受一个字符数组并返回一个仅包含有效字符的字符串:a-z、A-Z 和 0-9。就像这样:

['A','0','-'-,'<','b','3','/'] -> 'A0b3'

我在网上搜索了正则表达式和过滤器,但我从未使用过它们,因为我是编码新手,而且我已经非常困惑了。根据我的阅读,过滤器会从数组中删除元素,但在这种情况下,我认为所要求的只是返回一个包含有效字符 a-z、A-Z 和 0-9 的字符串

会是这样吗?

var wipe = function (arrayName)


   return arrayName(condition??).join('');

完全(绝望地)迷失在这里!谢谢。

编辑:这是一种这样做的方法吗

return (not sure what)

程序不应该打印任何东西,也不应该使用 const 或 let 或任何东西。只需执行函数并返回字符串。

【问题讨论】:

    标签: javascript filter character


    【解决方案1】:

    您需要使用正则表达式来测试字符是否是您想要的。

    const wipe = function(arrayName) {
      return arrayName.filter(character => /^[a-zA-Z0-9]/.test(character)).join("")
    }
    
    console.log(wipe(['A', '0', '-', '-', '<', 'b', '3', '/']))

    【讨论】:

    • 是的!非常感谢!
    【解决方案2】:

    我认为你需要这样的东西看看Regex remove all special characters except numbers? 如果需要,使用 join 然后拆分

    【讨论】:

      【解决方案3】:

      您的问题可以使用正则表达式/[^a-z0-9]/gi 来解决。 a-z0-9 是所有小写字母数字字符的模式,括号中的^ 基本上是“不”,gi 表示不区分大小写。将此模式放入replace 方法中匹配任何非字母数字字符并将它们替换为空字符。

      const wipe = function(chars) {
          return chars.join("").replace(/[^a-z0-9]/gi,'');
      };
      console.log(wipe(['A','0','-','<','b','3','/']));

      【讨论】:

        猜你喜欢
        • 2019-11-22
        • 2012-08-05
        • 2011-03-12
        • 2020-04-13
        • 2011-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多