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}'並將'?'直接放在後面。 –