RegEx为5位数字拉链或空

时间:2012-06-20 20:18:12

标签: javascript regex

我有这个正则表达式,用于检查5位数字^\d{5}$

如何更改它以使其对空字符串也返回true?

<script type="text/javascript">
var regex = /^\d{5}$/;

alert(regex.test(12345));
alert(regex.test(''));
</script>

1 个答案:

答案 0 :(得分:7)

将其封在()中并添加?以使整个模式可选。实际上,您要么匹配^\d{5}$ OR ^$(空字符串)。

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})?$/;