gpt4 book ai didi

javascript - 构造正则表达式以匹配数值范围

转载 作者:行者123 更新时间:2023-11-30 18:37:18 27 4
gpt4 key购买 nike

我正在寻找一种方法来构造正则表达式以匹配给定整数范围指定的数字输入,即。如果我传入 1,3-4 的范围,那么将返回一个仅匹配 1、3 和 4 的正则表达式。

我编写了以下方法来尝试执行此操作:

function generateRegex(values) {
if (values == "*") {
return new RegExp("^[0-9]+$");
} else {
return new RegExp("^[" + values + "]+$");
}
}

但我遇到了问题,因为有时我需要匹配两位数字,例如 "8-16",而且我还需要确保如果我传递的是一位数字值,例如作为 "1",生成的正则表达式只匹配 1,而不是 11

我真的希望这仍然是一小段代码,但我对正则表达式还不够了解如何做到这一点。非常感谢任何帮助!

编辑:我意识到我对我的原始段落不清楚,所以对其进行了编辑。我意识到我最初生成的正则表达式根本不起作用

最佳答案

正则表达式对数字一无所知,只知道数字。所以 [8-16] 是无效的,因为你说的是​​ 8 和 1(而不是 1 和 8,例如)加上数字 6 之间的匹配。如果你想匹配数字,你必须从词汇上考虑它们。例如,要匹配 1 到 30 之间的数字,您必须编写如下内容(存在其他正则表达式):

/^(30|[1-2]\d|[1-9])$/

关于javascript - 构造正则表达式以匹配数值范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7887157/

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