代码之家  ›  专栏  ›  技术社区  ›  ChrisRich

模糊字符串中除最后4个字符外的所有字符

  •  0
  • ChrisRich  · 技术社区  · 7 年前

    我用这个正则表达式替换了一个数字串中除最后4个字符以外的所有字符: '1234567890'.replace(/\d(?=\d{4})/g, 'X'); // "XXXXXX7890"

    但是,它只适用于数字。我希望它匹配任何字母数字字符,包括空格。我试着更换 /d 元字符 /w (在两个地方)但都不起作用。

    你能帮忙吗?

    2 回复  |  直到 7 年前
        1
  •  1
  •   Naguib Ihab    7 年前

    您希望同时选择/w和文本空间,以便 (\w| ) . | 就像一个 OR ,告诉regex选择单词字符或空格

    使用你的regex它将是: '1234567890'.replace(/(\w| )(?=(\w| ){4})/g, 'X')

        2
  •  1
  •   dekts    7 年前

    你必须使用 \w

    '123HGHJK90'.replace(/[\w ](?=[\w ]{4})/g, 'X');