正则表达式为 5 位 zip 或空



我有一个正则表达式,可以检查一个 5 位数字^d{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})?$/;

最新更新