Acceptez tous les nombres sauf 5 zéros consécutifs: Javascript

Je souhaite valider un numéro à 5 chiffres qui ne doit pas être 00000. Tous les nombres sauf 00000 sont autorisés.

Exemples: 01201, 00001, 21436, 45645 sont des nombres valides et 1, 12, 123, 1234, 00000 sont des nombres non valides.

J'ai essayé avec ^([0-9]{5}[^(0){5}])$ mais ce n'était pas utile.

Toute aide à ce sujet sera très appréciée.

Merci.

Utilisation d'un lookahead positif négatif:

 /^(?!0{5})\d{5}$/ 

 /^(?!0{5})\d{5}$/.test('01201') // => true /^(?!0{5})\d{5}$/.test('00001') // => true /^(?!0{5})\d{5}$/.test('21436') // => true /^(?!0{5})\d{5}$/.test('1') // => false /^(?!0{5})\d{5}$/.test('12') // => false /^(?!0{5})\d{5}$/.test('00000') // => false 

Pas besoin de lookahead négatif

Demo en direct

 function isvalid5(str) { return str != "00000" && /^\d{5}$/.test(str); } 

Vous pouvez utiliser un regard négatif:

 ^(?!0{5})\d{5}$ 

Le loo négatif à l'avance (?!...) échouera à l'ensemble de la regex si ce qui est en elle correspond, \d est un raccourci pour [0-9] .

Pour les moteurs regex qui ne supportent pas lookahead:

 ^(0000[1-9]|000[1-9][0-9]|00[1-9][0-9]{2}|0[1-9][0-9]{3}|[1-9][0-9]{4})$