2017-07-24 32 views
-2

我需要檢查一個數字的前6位數字是否來自222100-272099。 這是用JavaScript編寫的,我不確定如何去實現它。 我最初的想法是這樣的: 匹配(/^2 [2-7] [0-9] $ /),但我不知道如何正確指定此範圍。如何在JavaScript中使用正則表達式來指定此範圍?

+0

(/^2 [2-7] [0-9] {4} $ /)可能是你在找什麼? {number}是你想要的前幾個字符的數量。如果這樣做,我會寫一個答案。 – sniperd

+0

歡迎來到Stack Overflow。請先閱讀幫助中心,如何在此論壇上提出一個好問題:https://stackoverflow.com/help/how-to-ask。因此,我們可以更好地解決您的問題,並可以幫助解決您的問題。 –

+1

[現在你有兩個問題](https://blog.codinghorror.com/regular-expressions-now-you-have-two-problems/)。 – Phylogenesis

回答

3

您不應該爲此使用RegEx。這是更好地子串的字符串,然後比較:

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

小心這個。它也會匹配'22210a'或'25ujid'。你可能也想通過'parseInt()'來運行它。 – Phylogenesis

+1

真的嗎? 'const str ='22210a'; const n = str.substr(0,6); 222100 <= n && n <= 272099'對我而言爲虛假。 – idmean

+0

這是一個更理想的解決方案。它工作完美 - 謝謝! – amoonshapedpool

0

正則表達式是對字符串模式匹配: Wikipedia: Regular expression

您可以使用JavaScript的parseInt函數()函數把你的6個數字字符的字符串轉換成可以用來做一個簡單的大於/小於檢查的數字。 W3C: parseInt()