2013-01-09 25 views
5

मेरे पास एक स्ट्रिंग है और मैं इसे लूप करना चाहता हूं ताकि मैं जांच सकूं कि प्रत्येक char एक अक्षर या संख्या है या नहीं।मैं कैसे जांच सकता हूं कि कोई char एक अक्षर या संख्या है या नहीं?

$s = "rfewr545 345b"; 

for ($i=1; $i<=strlen($s); $i++){ 
    if ($a[$i-1] == is a letter){ 
     echo $a[$i-1]." is a letter"; 
    } else { 
     echo $a[$i-1]." is a number"; 
    } 
} 

मैं कैसे जांच सकता हूं कि कोई char एक पत्र या संख्या है या नहीं?

is_numeric($a[$i-1]) 
के रूप में नीचे

: अगर चरित्र is_numeric, का उपयोग

+0

यह बजाय हर किरदार से अधिक पुनरावृत्ति की पूरी स्ट्रिंग पर रेगुलर एक्सप्रेशन का उपयोग करना संभव है? –

+0

http://stackoverflow.com/q/9721636/1169798 और http://php.net/manual/en/function.is-numeric.php – Sirko

+0

'is_numeric()' को जांचने के लिए चाल करना चाहिए। – tradyblix

उत्तर

9

परीक्षण करने के लिए

$s = "rfewr545 345b"; 
for ($i = 1; $i <= strlen($s); $i++){ 
    $char = $a[$i-1]; 
    if (is_numeric($char)) { 
     echo $char . ' is a number'; 
    } else { 
     echo $char . ' is a letter'; 
    } 
} 
+9

प्रत्येक चार जो संख्यात्मक नहीं है वह एक पत्र है !! – m4t1t0

+0

यदि ओप केस हैं तो यह ओप है। – hsz

+0

मल्टीबाइट वर्णों के बारे में क्या? –

0

आप क्या कर सकते हैं is_numeric() समारोह

if (is_numeric($a[$i-1])){ 
     echo $a[$i-1]." is a number"; 
    } else { 
     echo $a[$i-1]." is a letter"; 
    } 
2

का उपयोग कर नियमित अभिव्यक्ति के साथ आप निम्नलिखित की कोशिश कर सकते हैं। एक नंबर एक "पत्र"

if (preg_match('/[a-zA-Z]/', $char)) : 
    echo $char.' is a letter'; 
endif; 

इस दृष्टिकोण का लाभ के लिए

if (preg_match('/\d/', $char)) : 
    echo $char.' is a number'; 
endif; 

टेस्ट के लिए

टेस्ट मुख्य रूप से "लेटर" परीक्षण, आप की सुविधा देता है जो कुशलता से है परिभाषित करें कि एक "अक्षर" चरित्र के रूप में का गठन करता है। इस उदाहरण में, मूल अंग्रेजी वर्णमाला को "अक्षर" के रूप में परिभाषित किया गया है।

+0

preg_match ('/^[a-zA-Z \ s \,] + $ /') –

+0

मेरा मानना ​​है कि ओपी एक * अक्षर * चरित्र का परीक्षण करने के लिए संदर्भित करता है, न कि * शब्द *। – Boaz

+0

ओक तो वह लूपिंग है –

0

php चेकआउट वर्णों के लिए कुछ अच्छा फ़ंक्शन प्रदान करता है। ब्लॉक में स्थितियों के रूप में उपयुक्त कार्यों का उपयोग करें।

यात्रा:

PHP char functions

उदा ctype_digit संख्यात्मक है यदि संख्या संख्यात्मक है।

0

आप वर्णमाला वर्ण (ओं) की जांच के लिए ctype_alpha का उपयोग कर सकते हैं।

इसी प्रकार, आप संख्यात्मक वर्णों की जांच के लिए ctype_digit का उपयोग कर सकते हैं।

is_numeric - ढूँढता है एक चर एक नंबर या सांख्यिक स्ट्रिंग है कि क्या

is_numeric() उदाहरण:

<?php 

    $tests = array(
     "42", 
     0b10100111001, 
     "not numeric", 
     array(), 
     9.1 
    ); 

    foreach ($tests as $element) { 
     if (is_numeric($element)) { 
      echo "'{$element}' is numeric", PHP_EOL; 
     } else { 
      echo "'{$element}' is NOT numeric", PHP_EOL; 
     } 
    } 
?> 

ऊपर के उदाहरण होगा उत्पादन:

'42' is numeric 
'1337' is numeric 
'not numeric' is NOT numeric 
'Array' is NOT numeric 
'9.1' is numeric 

कहाँ ctype_digit() और is_numeric() भिन्न है?

उदाहरण की तुलना पूर्णांकों के साथ तार:

<?php 
    $numeric_string = '42'; 
    $integer  = 42; 

    ctype_digit($numeric_string); // true 
    ctype_digit($integer);   // false (ASCII 42 is the * character) 

    is_numeric($numeric_string); // true 
    is_numeric($integer);   // true 

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

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