2017-07-24 5 views
-2

Je dois vérifier si les 6 premiers chiffres d'un numéro sont compris entre 222100 et 272099. Ceci est en JavaScript, et je ne sais pas comment l'implémenter. Ma pensée initiale était quelque chose comme: match (/^2 [2-7] [0-9] $ /), mais je ne suis pas sûr de savoir comment spécifier cette plage correctement.Comment spécifier cette plage à l'aide d'une expression régulière en JavaScript?

+0

(/^2 [2-7] [0-9] {4} $ /) pourrait être ce que vous cherchez? {nombre} correspond au nombre de caractères précédents que vous souhaitez. Si cela fait l'affaire je vais écrire une réponse. – sniperd

+0

Bienvenue dans Stack Overflow. S'il vous plaît lire d'abord dans le centre d'aide, comment poser une bonne question sur ce forum: https://stackoverflow.com/help/how-to-ask. Nous pouvons donc mieux comprendre votre question et vous aider à résoudre vos problèmes. –

+1

[Vous avez maintenant deux problèmes] (https://blog.codinghorror.com/regular-expressions-now-you-have-two-problems/). – Phylogenesis

Répondre

3

Vous ne devriez pas vraiment utiliser un RegEx pour cela. Il est préférable de sous-chaîne de la chaîne, puis comparer:

const n = Number.parseInt(str.substr(0, 6), 10); 
if (222100 <= n && n <= 272099) { 
    // ... 
+0

Soyez prudent avec ceci. Il correspondra également '22210a' ou' 25ujid'. Vous pouvez également l'exécuter via parseInt() '. – Phylogenesis

+1

Vraiment? 'const str = '22210a'; const n = str.substr (0, 6); 222100 <= n && n <= 272099' renvoie faux pour moi. – idmean

+0

C'est une solution beaucoup plus idéale. Cela a fonctionné parfaitement - Merci! – amoonshapedpool

0

Les expressions régulières sont pour le filtrage dans les chaînes: Wikipedia: Regular expression

Vous pouvez utiliser la fonction parseInt() de JavaScript pour transformer votre chaîne 6 caractères numérique dans un nombre qui peut être utilisé pour faire un simple supérieur à/inférieur à vérifier. W3C: parseInt()