如果可能的话,我需要一个与以下内容匹配的正则表达式,如何使用javascript或NodeJS包对其进行测试

如果可能的话,我需要一个与以下内容匹配的正则表达式,如何使用javascript或NodeJS包对其进行测试,javascript,node.js,regex,Javascript,Node.js,Regex,任何数字或大写字母(其中5个)后跟字符“?”,或任何数字或大写字母(其中6个)后跟可选字符“?” 例如,如果我有: AA54ZG-应匹配 AA54ZG?-应该匹配 AA54Z?-应该匹配 aA54ZG-不应匹配 ?A54ZG-不应匹配 AA54Z-不应该匹配 等等……(如果你觉得有必要,我可以提供更多的例子)给你。只要将“myTest”变量设置为您想要验证的任何变量,或者创建一个更复杂的测试,如果您不信任正则表达式:) const MY_REGEX=/^([A-Z0-9]{5}\?)|([A-

任何数字或大写字母(其中5个)后跟字符“?”,或任何数字或大写字母(其中6个)后跟可选字符“?”

例如,如果我有:
AA54ZG-应匹配
AA54ZG?-应该匹配
AA54Z?-应该匹配
aA54ZG-不应匹配
?A54ZG-不应匹配
AA54Z-不应该匹配

等等……(如果你觉得有必要,我可以提供更多的例子)

给你。只要将“myTest”变量设置为您想要验证的任何变量,或者创建一个更复杂的测试,如果您不信任正则表达式:)

const MY_REGEX=/^([A-Z0-9]{5}\?)|([A-Z0-9]{6}\)$/
功能测试(str){
如果(我的正则表达式测试(str))
document.write(str+“:匹配
”; 其他的 document.write(str+“:不匹配
”; } 测试(“AA54ZG”);//比赛 测试(“AA54ZG?”);//比赛 测试(“AA54Z?”);//比赛 测试(“aA54ZG”);//不匹配 测试(“?A54ZG”);//不匹配
测试(“AA54Z”);//不匹配
这是我提出的,适用于您给出的示例:

(?:^[A-Z0-9]{6}\??$)|(?:^[A-Z0-9]{5}\?$)

在这里查看:

另一种方法可以实现同样的效果(但匹配的步骤会更少)

  • [\dA-Z]{5}
    :5倍大写或数字
  • (?:\?\124;[\ dA-Z]\?)
    :后跟一个问号,或另一个大写/数字和可选问号。
    ?:
    只是使其成为非捕获组
根据您的用例,分别在开头和结尾添加
^
$
,以验证整个字符串


试着自己做。你试过什么吗?你对应该匹配的内容的描述毫无意义。本网站不是代码编写服务。这是一个相对简单的正则表达式,您可以在完成一些基本正则表达式教程后自行编写。在此网站上查找角色类、锚定和重复:([0-9A-Z]{5}\?|[0-9A-Z]{6}\)最后一个案例将失败AA54Z@Ciabaros:这并不矛盾:要么5个字符后跟一个
,要么6个字符可选地后跟一个
@FelixKling是的,你是对的。这就是为什么我在发布评论后立即删除了它。当前的解决方案处理他的所有案例和规范。
[\dA-Z]{5}(?:\?|[\dA-Z]\??)