Javascript 正则表达式以匹配模式或空值
我需要匹配一个模式,其中可以有大小为4的字母数字值或空值。 我现在的正则表达式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
"[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个字符长的值。