6

5桁の数字をチェックするこの正規表現があります^\d{5}$

空の文字列に対してもtrueを返すように変更するにはどうすればよいですか?

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

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

1 に答える 1

11

それを囲み、()を追加し?て、パターン全体をオプションにします。事実上、^\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})?$/;
于 2012-06-20T20:19:33.990 に答える