【问题标题】:How to find the match or shuffled combination in JS如何在 JS 中找到匹配或洗牌的组合
【发布时间】:2022-10-02 00:00:38
【问题描述】:

我想在字符串中找到如下匹配:

  1. s = \'()\' -> 结果应该是true

  2. s = \'(]\' -> 结果应该是false

  3. s = \'()[]{}\' 结果应该是true

  4. s = \'([])\' 结果应该是true

  5. s = \'{([])}\' 结果应该是true

    const isValid = (s) => { //how to return the value? } console.log(isValide(\'[]\') //should be true

标签: javascript regex


【解决方案1】:

如果没有嵌套相同的括号,您可以使用:

^(?:\([^()]*\)|\[[^\]]*]|{[^{}]*})+$

模式重复 1 次或多次匹配 (...)[...]{...} 使用否定字符类。

^ 断言字符串的开头,$ 断言字符串的结尾。所有 3 种括号类型在分组构造中重复 1 次或多次 (?:...)+

Regex demo

【讨论】:

  • {{}} - 不匹配
  • @FlashThunder 这不在示例数据中,答案从假设没有嵌套的相同类型的括号开始。
  • 我可以除以 2 并比较两者是否正确吗?通过反转第二部分?如果是这样如何检查正则表达式?
  • @3gwebtrain 我不确定你的意思。你想除以 2 什么?你想要完成什么?
【解决方案2】:

使用正则表达式模式来满足您的要求。 Here

是一个测试和检查的游乐场。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-30
    • 1970-01-01
    • 2011-02-06
    • 2021-08-23
    • 2018-08-28
    • 2013-09-02
    • 1970-01-01
    • 2012-11-07
    相关资源
    最近更新 更多