Biorąc swój komentarz, który chcesz „co najmniej” trzy cyfry, nie sądzę, że musi być bardziej skomplikowane niż:
/\d.*\d.*\d/
... co jest cyfrą, to zero lub więcej cokolwiek, potem kolejna cyfra, potem zero lub więcej cokolwiek, potem kolejna cyfra. Ponieważ nie zakotwiczyłem żadnego końca, istnieje niejawne "zero lub więcej niczego" na obu końcach.
console.log(!!"abk2d5k6".match(/\d.*\d.*\d/)); // true
console.log(!!"abk25k6d".match(/\d.*\d.*\d/)); // true
console.log(!!"abkd5k6".match(/\d.*\d.*\d/)); // false (I removed a digit)
console.log(!!"abk2k6d".match(/\d.*\d.*\d/)); // false (I removed a digit)
lub
/(\d.*){3}/
console.log(!!"abk2d5k6".match(/(\d.*){3}/)); // true
console.log(!!"abk25k6d".match(/(\d.*){3}/)); // true
console.log(!!"abkd5k6".match(/(\d.*){3}/)); // false (I removed a digit)
console.log(!!"abk2k6d".match(/(\d.*){3}/)); // false (I removed a digit)
lub m.Buettner zwraca uwagę w komentarzach poniżej, zamiast .
można użyć \D
(nie cyfrę):
/\d\D*\d\D*\d/
lub
/(\d\D*){3}/
display(!!"abk2d5k6".match(/\d\D*\d\D*\d/)); // true
display(!!"abk25k6d".match(/\d\D*\d\D*\d/)); // true
display(!!"abkd5k6".match(/\d\D*\d\D*\d/)); // false (I removed a digit)
display(!!"abk2k6d".match(/\d\D*\d\D*\d/)); // false (I removed a digit)
display(!!"abk2d5k6".match(/(\d\D*){3}/)); // true
display(!!"abk25k6d".match(/(\d\D*){3}/)); // true
display(!!"abkd5k6".match(/(\d\D*){3}/)); // false (I removed a digit)
display(!!"abk2k6d".match(/(\d\D*){3}/)); // false (I removed a digit)
Zasadniczo, nie ma potrzeby kotew jeśli jest to „co najmniej” mecz .
Jest. Co próbujesz? –
Co najwyżej trzy, co najmniej trzy lub dokładnie trzy? –
@JanDvorak Ive wiele próbowałem. (uwierz mi). Próbowałem z pozytywnym spojrzeniem, ale utknąłem z '\ d +' (rzeczą 'plus' - ponieważ plus chce, aby był sekwencyjny). na drugie pytanie, powiedzmy co najmniej 3. (przepraszam, że nie wyjaśniam tego). –