如果可能的话,我需要一个与以下内容匹配的正则表达式,如何使用javascript或NodeJS包对其进行测试
任何数字或大写字母(其中5个)后跟字符“?”,或任何数字或大写字母(其中6个)后跟可选字符“?” 例如,如果我有:如果可能的话,我需要一个与以下内容匹配的正则表达式,如何使用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-
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}\?$)
在这里查看:另一种方法可以实现同样的效果(但匹配的步骤会更少)
:5倍大写或数字[\dA-Z]{5}
:后跟一个问号,或另一个大写/数字和可选问号。(?:\?\124;[\ dA-Z]\?)
只是使其成为非捕获组?:
^
和$
,以验证整个字符串
试着自己做。你试过什么吗?你对应该匹配的内容的描述毫无意义。本网站不是代码编写服务。这是一个相对简单的正则表达式,您可以在完成一些基本正则表达式教程后自行编写。在此网站上查找角色类、锚定和重复:([0-9A-Z]{5}\?|[0-9A-Z]{6}\)最后一个案例将失败AA54Z@Ciabaros:这并不矛盾:要么5个字符后跟一个
?
,要么6个字符可选地后跟一个?
@FelixKling是的,你是对的。这就是为什么我在发布评论后立即删除了它。当前的解决方案处理他的所有案例和规范。
[\dA-Z]{5}(?:\?|[\dA-Z]\??)