2009-08-29 22 views
27

मैं कैसे जांच सकता हूं कि एक चर एक संख्या है, या तो एक पूर्णांक या स्ट्रिंग अंक है?जांचें कि वेरिएबल

PHP में मैं कर सकता:

if (is_int($var)) { 
    echo '$var is integer'; 
} 

या:

if (is_numeric($var)) { 
    echo '$var is numeric'; 
} 

मैं इसे कैसे jQuery/जावास्क्रिप्ट में कर सकते हैं?

+0

मैं यह सोचते हैं रहा है कि आप परीक्षण करने के लिए अपने सर्वर पर एक राउंड ट्रिप से बचने की कोशिश कर रहे हैं? यह मस्तिष्क-मृत-आसान तरीका होगा;) –

उत्तर

22

मैं

isFinite(String(foo)) 

साथ जाना चाहते हैं एक स्पष्टीकरण क्यों के लिए this answer देखें। यदि आप केवल पूर्णांक मान स्वीकार करना चाहते हैं, look here

+5

इसके लिए देखें। 'असीमित (शून्य) === सच' –

+1

isFinite (" 100 ") सत्य है, हम जानना चाहते हैं कि ऑब्जेक्ट एक संख्या वस्तु है। मेरे संक्षिप्त परीक्षण से यह यहां समाधान की तरह दिखता है (Object.prototype.toString.call (obj) === "[ऑब्जेक्ट नंबर]") सबसे अच्छा है: http://stackoverflow.com/questions/1303646/check-whether -वर्तनीय-संख्या-या-स्ट्रिंग-इन-जावास्क्रिप्ट – Skychan

+0

एक खाली स्ट्रिंग के साथ भी सच है, जिसे मैं "संख्या" – Balmipour

37

जावास्क्रिप्ट फ़ंक्शन isNaN(variable) चाल चलाना चाहिए। यदि डेटा एक संख्या नहीं है तो यह सच हो जाता है।

+1

यह भी देखें http://www.javascripter.net/faq/numbervs.htm –

+0

यह एक अच्छा सुझाव है। एफडब्ल्यूआईडब्लू, यह काम करता है क्योंकि स्ट्रिंग्स को निश्चित रूप से संख्याओं में परिवर्तित किया जाता है - स्पष्ट कोड है: 'isNaN (नया नंबर (चर))'। ध्यान दें कि यदि आप कोड को पूर्णांक तक सीमित करना चाहते हैं, तो 'parseInt() '' NaN' लौटाएगा ('isNaN()' के माध्यम से परीक्षण योग्य)। ध्यान रखें कि 'parseInt() 'स्ट्रिंग के अंत में गैर-संख्यात्मक अंकों को खुशी से अनदेखा कर देगा। – Shog9

+1

यह सब कुछ स्वीकार करेगा जिसे एक संख्या में परिवर्तित किया जा सकता है, जिसमें बूलियन मान और 'अनंतता' शामिल है; बेहतर उपयोग 'isFinite (स्ट्रिंग (foo)) ' – Christoph

1

देखें isNan

संपादित करें: कृपया क्या क्रिस्टोफ ऊपर का सुझाव दिया है देखो। सुझाए गए अनुसार अनंत का उपयोग करना समझ में आता है।

+0

'isNaN()' निहित रूप से संख्या टाइप करने के लिए परिवर्तित हो जाता है ताकि आपको झूठी सकारात्मक मिले! – Christoph

11
function isNumber(input) { 
    return !isNaN(input); 
} 

isNumber({}) // false 

isNumber('13') // true 

isNumber(13) // true 

isNumber('test') // false 
+3

"123a" के साथ परीक्षण एक झूठी सकारात्मक देता है - parseInt() कॉल "ए" छोड़ रहा है लेकिन मूल्य को अद्यतन नहीं कर रहा है और न ही स्रोत फ़ील्ड। –

+2

स्ट्रिंग '13' एक संख्या नहीं है! –

1
function isNumeric($probe) 
{ 
    return parseFloat(String($probe)) == $probe; 
} 
3

मैं जावास्क्रिप्ट के लिए बहुत नया हूं लेकिन ऐसा लगता है कि typeof(blah) आपको यह जांचने देता है कि कुछ संख्या है (यह तारों के लिए सच नहीं है)। एक ओपी को तारों + संख्याओं के लिए कहा जाता है लेकिन मैंने सोचा कि यह अन्य लोगों के लिए दस्तावेज के लायक हो सकता है।

जैसे:

function isNumeric(something){ 
    return typeof(something) === 'number'; 
} 

यहाँ the docs

हैं और उन्हें यहां typeof क्या पैदा करता है के कुछ सांत्वना रन है:

typeof(12); 
"number" 
typeof(null); 
"object" 
typeof('12'); 
"string" 
typeof(12.3225); 
"number" 

एक मामूली weirdness मैं के बारे में पता कर रहा हूँ

typeof(NaN); 
"number" 
है

लेकिन यह कुछ सही के बिना जावास्क्रिप्ट नहीं होगा ?!

1

आप उपयोग करना चाहिए:

var x = 23; 
var y = 34hhj; 

isNaN(x); 
isNaN(y); 

यह सच वापस आ जाएगी इसके स्ट्रिंग और झूठे अगर इसकी एक नंबर है।

0

आप क्या दिया मूल्य संख्या है की जाँच करने के

आसान तरीका इस्तेमाल करना चाहिए "अगर हालत"

function isInteger(value)  
{  
    num=value.trim();   
    return !(value.match(/\s/g)||num==""||isNaN(num)||(typeof(value)=='number');   
} 

यह सच वापस आ जाएगी, तो मूल्य है जो हम गुजर रहे हैं एक पूर्णांक है ..

का उपयोग करके
solved for  
value=""  //false null  
value="12" //true only integers  
value="a"  //false  
value=" 12" //false  
value="12 " //false   
value=" "  //false space   
value="$12" //false special characters 
value="as12" //false 
0

पता है कि रिक्त स्ट्रिंग '' और ' 'isNaN और ०१२३९४६१३४ से संख्या के रूप में विचार किया जाएगा बनें।

संबंधित मुद्दे