gpt4 book ai didi

Javascript - 在一行中评估多个正则表达式

转载 作者:行者123 更新时间:2023-12-02 07:40:02 28 4
gpt4 key购买 nike

我对 Javascript 中的正则表达式相当陌生,我正在尝试做一些看似简单的事情,但失败了。基本上,我需要评估一个字符串是否满足 2 个正则表达式条件中的 1 个。基本上,一个输入字符串可以有 2 种形式中的一种,其中一种是有效的,其他任何形式都是无效的。

假设我有 2 个正则表达式:a= ^[0-9]\d{3}$b= ^1-\d{5}并希望在继续之前查看输入字符串是否匹配。我想要做的是这样的:

If((!a.test(input)) || (!b.test(input)))
{
alert("Invalid ID");
}

我还尝试了使用“|”的变体运算符(operator):

if((!a|!b.test(input)))

但到目前为止没有任何效果。通常我会得到声明来验证 1 个或一个都不验证,但不会同时验证两个。我不确定我在这里做错了什么。

谢谢!

最佳答案

我认为你的 bool 逻辑是错误的。要在继续之前匹配一个或另一个,失败的情况是它不匹配两个测试,如下所示:

if(!a.test(input) && !b.test(input))
{
alert("Invalid ID");
}

此外,您的 If 应该是带有小写字母 iif 并且我删除了不必要的括号级别以使其更容易一些阅读。

您也可以将两个正则表达式合并为一个并立即测试:

var re = /^[0-9]\d{3}$|^1-\d{5}/;

if (!re.test(input)) {
alert("Invalid ID");
}

此外,您没有显示真正的代码,但没有声明正则表达式在您的问题中的使用方式。也许这就是您将它们复制到问题中的方式,但它们使用的是 /regex here/ 语法:

var a = /^[0-9]\d{3}$/;
var b = /^1-\d{5}/;

注意:在您的第二个正则表达式中,您是否打算像第一个一样在末尾添加一个 $

关于Javascript - 在一行中评估多个正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12167727/

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