jjnguy avait correct (si légèrement redondant) dans un earlier revision.
.*?[^0-9].*
@Chad, votre regex,
\b.*[a-zA-Z]+.*\b
devrait probablement permettre des lettres non (par exemple, ponctuation), même si les exemples de Svish ne comprenaient pas un. L'exigence principale de Svish était: tous ne sont pas des chiffres.
\b.*[^0-9]+.*\b
Ensuite, vous n'avez pas besoin + là-dedans depuis tout ce que vous avez besoin est de garantir 1 non chiffres est là (plus peut-être là-dedans comme couvert par la. * Sur les extrémités).
\b.*[^0-9].*\b
Ensuite, vous pouvez supprimer le \ b à chaque extrémité puisque ceux-ci sont contraintes inutiles (invoquant référence à Alphanum et _).
.*[^0-9].*
Enfin, notez que cette dernière regex montre que le problème peut être résolu avec juste les bases, les bases qui existent depuis des décennies (par exemple, pas besoin de la fonction look-ahead). En anglais, la question était logiquement équivalente à simplement demander qu'un caractère de contre-exemple soit trouvé dans une chaîne.
Nous pouvons tester cette expression régulière dans un navigateur en copiant ce qui suit dans la barre d'adresse, en remplaçant la chaîne "6576576i7567" par ce que vous voulez tester.
javascript:alert(new String("6576576i7567").match(".*[^0-9].*"));
C'est essentiellement ce que j'ai fini avec :) – Svish
Donc ... en gros, vous avez trouvé une expression compliquée pour/\ D /. –
Eh bien non, \ D est différent du mien car il ne correspond qu'aux non-chiffres. Mine renvoie les correspondances qui incluent la chaîne entière lorsqu'une correspondance est faite alors que juste \ D pourrait être plusieurs correspondances par ligne. Mon regex renvoie 4 correspondances tandis que \ D renvoie 17 (pour chaque non-chiffre). –