2010-03-12 102 views

回答

3

要檢查字符串中包含數字和字母,你可以做,寫一個小的正則表達式的基礎功能:

function contains_num_alpha($str) { 

return preg_match('/^[a-z0-9]+$/i',$str); 

} 

使用正則表達式: ^[a-z0-9]+$

  • ^, $ - 錨
  • [a-z0-9] - 這matche焦炭類一個 單個數字或一個字母表。
  • [a-z0-9]+ - 一個或多個 數字/字母。
  • i - 使匹配案例 不敏感。

如果你想允許甚至是空字符串,你可以在正則表達式中將+更改爲*

0

您可以使用正則表達式

$stringGood = 'abc2'; 

    $stringBad = '2#2(7X%'; 

    function isValidAlphaNum($str) { 

    return preg_match('/^[a-z\d]+$/i', $str); 

    } 

    var_dump(validateAlphaNum($stringGood)); // true 
    var_dump(validateAlphaNum($stringBad)); // false 

如果你想允許大寫和小寫字母字符,數字和下劃線,你可以使用這個表達式:/^\w+$/

0

不知道你問的,但如果你想檢查一個字符串中是否至少有1個alpha和1個數字字符,那麼這個正則表達式應該這樣做:

<?php 

if (preg_match("^[a-zA-Z0-9]{1,}$", $str) { 
    // match was found; 
} 
?> 
+0

'+'的含義與'{1,}'相同嗎?不是嗎? – alex 2010-03-12 04:13:41

-1
<?php 
if (is_string("23")) { 
    echo "is string\n"; 
    } else { 
    echo "is not an string\n"; 
    } 
    var_dump(is_string('abc')); 
    var_dump(is_string("23")); 
    var_dump(is_string(23.5)); 
    var_dump(is_string(true)); 
    ?> 

使用is_string函數。 如果參數類型是字符串,則返回TRUE,否則返回FALSE。

<?php 
$tests = Array(
       "42", 
       1337, 
       "1e4", 
       "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; 
     } 
} 
?> 

如果你想檢查輸入的數字使用「is_numeric」功能

它返回true,如果該參數是數字。否則返回false

+0

'is_string()'檢查它是否爲'string'類型。它不會針對字符集的白名單進行驗證。 – alex 2010-03-12 04:17:13