首页 > 解决方案 > 包含两个方括号的简单 JavaScript 正则表达式

问题描述

我正在尝试编写以下形式的正则表达式:najfo359f+-q3f#~[+0asa123123]a'/.df;ekfm345

  • 任何包含数字 0 次或多次的字符,
  • 1 个开口方括号,
  • 任何包含数字 0 次或多次的字符,
  • 一个号码,
  • 1 个闭合方括号,
  • 以及任何包含数字 0 次或多次的字符,

    这是我到目前为止所拥有的:

    /.*[.*0*/d+].*/
    

    但是我无法匹配简单的[2245],当我尝试转义\左方括号时,我的代码不会执行。

    我错过了什么?

  • 标签: javascriptregex

    解决方案


    几点观察:

    1. 0则表达式中间的 似乎有点武断,似乎在您的任何标准中都没有考虑。
    2. 不确定为什么要包含 a /d,也许您的意思是\d?反斜杠\用于指示转义序列。

    您正在寻找更类似于:

    /.*\[.*\d+\].*/
    

    正则表达式101

    在 Javascript 的上下文中:

    const pattern = /.*\[.*\d+\].*/;
    console.log(pattern.test("najfo359f+-q3f#~[+0asa123123]a'/.df;ekfm345"));
    console.log(pattern.test("[2245]"));


    推荐阅读