2009-09-29 56 views
0

值爲AbcDefg_123php正則表達式失敗,爲什麼?

這裏是正則表達式:

function checkAlphNum($alphanumeric) { 
    $return = false; 
    if((preg_match('/^[\w. \/:_-]+$/', $alphanumeric))) { 
     $return = true; 
    } 
    return $return; 
} 

應該允許以任何順序或格式a-zA-Z0-9.:_-/和空間,確實需要所有,但至少有一個字符。

編輯:對不起,看起來像var_dump()是我最好的朋友。我正在使用XML,它傳遞標籤以及價值。

@SilentGhost thnx的提示。

+0

WORKSFORME(上IRB) – Eimantas 2009-09-29 17:36:22

+0

HM,對我的作品 – SilentGhost 2009-09-29 17:36:30

+2

無關的問題:'回報的preg_match(...);'會更清楚,如果這是整個函數。 – 2009-09-29 17:37:55

回答

0

它也適用於我。

<?php 

class RegexValidator 
{ 
    public function IsAlphaNumeric($alphanumeric) 
    { 
     return preg_match('/^[\w. \/:_-]+$/', $alphanumeric); 
    } 
} 
?> 

這就是我如何測試它。

<?php 
require_once('Classes/Utility.php'); 

$regexVal = new RegexValidator(); 


$list = array("abcd", "009aaa", "%%%%", "0000(", "aaaa7775aaa", "$$$$0099aaa", "kkdkdk", "aaaaa", "..0000", " "); 

foreach($list as $value) 
{ 

    if($regexVal->IsAlphaNumeric($value)) 
    { 
     echo $value . " ------>passed"; 
     echo "<BR>"; 
    } 
    else 
    { 
     echo $value . "------>failed"; 
     echo "<br>"; 
    } 

} 
?> 
-1
function checkAlphNum($alphanumeric) { 
    $return = false; 
    if((preg_match('/^[A-Za-z0-9\w. \/:_-]+$/', $alphanumeric))) { 
     $return = true; 
    } 
    return $return; 
} 

print checkAlphNum("AbcDefg_123"); 

返回true。

+0

和沒有什麼不同,除了分號,當然已經有 – SilentGhost 2009-09-29 17:41:23

+0

。 – SilentGhost 2009-09-29 17:41:57

相關問題