gpt4 book ai didi

javascript - 字符串中的所有字符都必须匹配正则表达式

转载 作者:行者123 更新时间:2023-12-02 20:24:50 26 4
gpt4 key购买 nike

很抱歉,如果这之前已经出现过,但我在谷歌上找不到任何能提供我想要的东西。

我有一个可以写表达式的字段:x>1 , x>2||x<1 (x>1) && (x<2)等等
我想要的是一个检查表达式的正则表达式,因此它只能包含某些有效字符来防御代码注入(inject)。 a.1不应该匹配。

到目前为止,我正在使用这个:

expression.match('[xX<>=|0-9&().]')

但这也会返回包含任何这些字符的任何内容。我想要的是一个只有在所有字符都匹配正则表达式中的任何一个时才返回的表达式。

最佳答案

您需要*+字符类和 anchor 之后的量词:

/^[xX<>=|0-9&()\s.]*$/.test(expression)
^ ^^

现在,它将匹配
  • ^ - 字符串开头
  • [xX<>=|0-9&\s().]* - 零个或多个(如果您使用 +,则为一个或多个)在 char 类
  • 中定义的字符
  • $ - 字符串结束。

  • 简短演示:

    console.log(/^[xX<>=|0-9&\s().]*$/.test("a.1"));
    console.log(/^[xX<>=|0-9&\s().]*$/.test("(x>1) && (x<2)"));


    注意我添加了 \s也匹配空格。

    关于javascript - 字符串中的所有字符都必须匹配正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57555876/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com