3
我有这样的正则表达式,用于检查一个5位数字^\d{5}$
正则表达式5位数邮政编码或空
我如何改变它,这样它也返回true空字符串?
<script type="text/javascript">
var regex = /^\d{5}$/;
alert(regex.test(12345));
alert(regex.test(''));
</script>
我有这样的正则表达式,用于检查一个5位数字^\d{5}$
正则表达式5位数邮政编码或空
我如何改变它,这样它也返回true空字符串?
<script type="text/javascript">
var regex = /^\d{5}$/;
alert(regex.test(12345));
alert(regex.test(''));
</script>
括在()
,并添加一个?
,使整个模式可选。实际上,您可以匹配^\d{5}$
或^$
(空字符串)。
var regex = /^(\d{5})?$/;
console.log(regex.test(12345));
console.log(regex.test(''));
// true
// true
// Too long, too short
console.log(regex.test(123456));
console.log(regex.test('1'));
// false
// false
需要注意的是,除非你打算做比证明他们是目前其他的5位数字的东西,你可以使用非捕获组(?:)
节约资源的一点点。
var regex = /^(?:\d{5})?$/;
谢谢,所以'?'单独就够了,我需要'$'吗? –
@RegisteredUser将'$'保留在最后,但在'()'中围绕'\ d {5}'并将'?'直接放在后面。 –