2011-05-29 14 views
8

1-10 और 1-5 की संख्या के लिए रेगेक्स क्या होगा? कृपया इस परेशान आत्मा की मदद करें।सत्यापन के लिए जावास्क्रिप्ट में 1-10 के लिए Regex

+1

क्यों आप पहली जगह में एक regex के साथ ऐसा करना चाहते हैं? – Pointy

+1

संख्यात्मक रेंज परीक्षण के लिए नियमित अभिव्यक्ति का उपयोग क्यों करें? – Phil

+0

मुझे अपने टेक्स्टबॉक्स के लिए उपयोगकर्ता से इनपुट प्रमाणित करने की आवश्यकता है। फॉर्म जमा करने से पहले वैध मान 1 फ़ील्ड के लिए 1-10 और दूसरे के लिए 1-5 है। Var validrange =/^ [0-9]/की तरह कुछ; या कुछ लेकिन मुझे सही प्रारूप की जरूरत है !! –

उत्तर

11

आप हासिल कर सकता है कि आसान नंबर के चेक के साथ जावास्क्रिप्ट में:

// Convert input to integer just to be sure 
mynum = parseInt(mynum, 10); 

// Check number-range 
if(mynum >= 1 && mynum <=10) 
and 
if(mynum >= 1 && mynum <=5) 

तुम सच में regex का उपयोग करना चाहते हैं:

/^([1-9]|10)$/ 
and 
/^[1-5]$/ 

अद्यतन:

  • पहले reg फिक्स्ड पूर्व सही ढंग से पहला उदाहरण के लिए स्ट्रिंग boundings
  • जोड़ा गया parseInt मैच के लिए सही संख्या-जांच
+1

+1 के साथ टाइप करें, लेकिन पहले दो को parseInt() –

+1

भी पहले रेगेक्स मैचों की आवश्यकता है 0. :-) –

+0

* श्वास * आप सही हैं, धन्यवाद – marsbear

2

क्या कोई कारण है कि आप नियमित अभिव्यक्तियों का उपयोग करना चाहते हैं?

/([1-9]|10)/ 
0

1-10 के लिए यह

/^([1-9]|10)$/ 

हो सकता है और 1-5 बस

/^[1-5]$/ 
+1

मैचों "100000000000" –

3

1-5 के लिए के लिए आप केवल चरित्र वर्ग के रूप में यह जोड़ देना चाहिए:

/^[1-5]$/ 

1-10 के लिए आपको केवल एक अतिरिक्त विकल्प की आवश्यकता होगी:

/^([1-9]|10)$/ 
+0

ty !! अभी यह कोशिश करेंगे! –

+0

क्या होगा यदि इनपुट "03" या "3.0" के रूप में दिया गया हो? – user113716

+0

@patrick: दोनों को उस परीक्षा में असफल होना चाहिए। यदि एक स्ट्रिंग प्रारूप सत्यापन के बजाय एक पूर्णांक या फ्लोटिश तुलना की आवश्यकता है, तो एक रेगेक्स बहुत अधिक प्रयास है। – mario

4

यह रेगुलर एक्सप्रेशन का अच्छा उपयोग नहीं है सुनिश्चित करने के लिए।

उपयोग सरल की स्थिति:

if (x > 0 && x < 6) { 
    // x is 1 - 5 
} 

if (x > 0 && x < 10) { 
    // x is 1 - 10 
} 
1

उपयोग अंकीय तुलना। निम्नलिखित संख्या विस्तार जाँच कर सकते हैं एक नंबर 2 मूल्यों के बीच गिर जाता है:

Number.prototype.between = 
    function(lower,upper, includeBoundaries){ 
    lower = Number(lower); 
    upper = Number(upper); 
    noCando = isNaN(lower) || 
       isNaN(upper) || 
       lower>=upper; 
    if (noCando) { 
     throw 'wrong arguments or out of range'; 
    } 
    return includeBoundaries 
      ? this >= lower && this <= upper 
      : this > lower && this < upper 
}; 
// usage: 
(12).between(1,12); /=> false 
(12).between(1,12,true); /=> true 
(12).between(0,15,true); /=> true 
(0).between(-5,1); //=> true 

समारोह मापदंडों धर्मान्तरित संख्या है क्योंकि 0 जावास्क्रिप्ट में एक बूलियन के लिए मूल्यांकन कर सकते हैं, अगर paramaters वास्तविक संख्या मान हैं जाँच करने के लिए सक्षम होने के लिए और यह जांचने में सक्षम होना चाहिए कि निचला ऊपरी से बराबर/बराबर नहीं है। उन मामलों में एक त्रुटि फेंक दिया जाता है।

includeBoundaries पैरामीटर यह भी जांचता है कि कोई संख्या कम या ऊपरी के बराबर है, अगर यह आपूर्ति नहीं की जाती है, तो फ़ंक्शन वास्तविक 'बीच' चेक देता है।

1

जवाब होगा

/^([1-9]|10)$/ 
संबंधित मुद्दे