Javascript 正则表达式以匹配模式或空值

Javascript 正则表达式以匹配模式或空值,javascript,jquery,regex,Javascript,Jquery,Regex,我需要匹配一个模式,其中可以有大小为4的字母数字值或空值。 我现在的正则表达式 "[0-9a-z]{0|4}"); 不适用于空值 我尝试过以下两种模式,但没有一种适合我: "(?:[0-9a-z]{4} )?"); "[0-9a-z]{0|4}"); 我经常验证我的正则表达式,但有时我会被正则表达式卡住。是否有一种方法/工具可供我使用,以确保我必须来这里处理非常复杂的问题 我可能想要匹配的示例:we12、3444、de1q、{empty} 但不想匹配:@$12,#12q,1,qwe,qqqq

我需要匹配一个模式,其中可以有大小为4的字母数字值或空值。 我现在的正则表达式

"[0-9a-z]{0|4}");
不适用于空值

我尝试过以下两种模式,但没有一种适合我:

"(?:[0-9a-z]{4} )?");
"[0-9a-z]{0|4}");
我经常验证我的正则表达式,但有时我会被正则表达式卡住。是否有一种方法/工具可供我使用,以确保我必须来这里处理非常复杂的问题

我可能想要匹配的示例:we12、3444、de1q、{empty} 但不想匹配:@$12,#12q,1,qwe,qqqq


没有大写字母匹配

总体而言,您可以使用模式
表达式$
,因此它将尝试匹配
表达式
或(
)空的
,并且我们确保之后没有任何内容,包括锚定
$
。 此外,我们还可以用一个捕获组
(…)
,将其封装起来,这样它最终看起来就像这样:

ˆ(expresison |)$
因此,将其应用到您的需求中,结果会是:

^([0-9a-z]{4}|)$
这就是一个例子

编辑:

如果要同时匹配大写字母,请在模式中添加
A-Z

^([0-9a-zA-Z]{4}|)$
我想“空值”是指上述问题中的空行。如果是这种情况,您可以使用以下表达式:

^\s*$|[a-z0-9]{4}

哪个匹配大小为4的字母数字模式或解释的空行

你能举例说明你想要匹配的是什么吗?应该允许大写字母?@donfuxx否。但如果我必须这样做,我只需使用A-Z/A-Z | 0-9作为字符集?阅读这个问题+1你读到我的心思了吗?即将编写完全相同的正则表达式,包括发布相同的演示链接:-P
警告:一个空的备选方案有效地使该组成为可选的,这表明备选方案是完全冗余的
解决方案是由其他问题发布的
^([0-9a-zA-Z]{4})$
向下投票!是的,这就是我想要的。。空值或4个字符长的值。