You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript数组过滤实现:移除符号或数字(密码生成器场景)

密码生成器数组的两种过滤实现

原字符数组

const characters = [
  "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",
  "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
  "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
  "n", "w", "x", "y", "z",
  0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
  "#", "$", "%", "^", "&", "*", ",", "|", ":", ";", "<", ">", ".", "?", "/"
];

需求1:过滤所有符号,仅保留字母与数字

利用数组filter方法,结合类型判断和正则表达式区分元素:

const lettersAndNumbers = characters.filter(item => {
  // 匹配字母(字符串类型且符合a-z/A-Z)或数字(number类型)
  return (typeof item === 'string' && /[a-zA-Z]/.test(item)) || typeof item === 'number';
});

说明:原数组中数字为number类型,字母和符号为string类型,通过typeof区分数字,再用正则筛选出字母,即可排除所有符号。


需求2:过滤所有数字,仅保留字母与符号

直接通过filter排除number类型元素:

const lettersAndSymbols = characters.filter(item => {
  // 移除所有number类型的元素,剩余即为字母和符号
  return typeof item !== 'number';
});

说明:原数组里只有数字是number类型,因此直接过滤掉这类元素就能得到目标数组。


内容的提问来源于stack exchange,提问作者Saoud ElTelawy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 03:01:39