Jay wrote:

I got this code from here, i think it was "Ni Shurong" who gave it to me. The code works pretty good. Except i found that sending "asdas." into the function will return true...it should return false. What i am trying to do is check for valid chars. Only alpha and numeric. Can someone help me correct the code:

function isValid($strData, $bIncludeAlpha=false, $bIncludeNumber=false)
{
     switch(true) {
         case $bIncludeAlpha && !$bIncludeNumber:
             $ptr = "/^[a-zA-Z]+/";

Match one or more letters at the beginning of the string: "asdas." passes.

             break;
         case !$bIncludeAlpha && $bIncludeNumber:
             $ptr = "/^[0-9]+/";

match one or more letters at the beginning of the string: "asdas." fails

             break;
         case $bIncludeAlpha && $bIncludeNumber:
             $ptr = "/^[a-zA-Z0-9]+/";

Match one or more letters or numbers at the beginning of the string: "asdas." passes


             break;
         default:
             return false;
     }
     return preg_match($ptr, $strData);
}

Your patterns are missing the $ for "end of string", if you're after what I think you are.


/^[a-zA-Z]+$/ => ensures entire string is letters only (and not empty)
/^[0-9]+$/ => ensure entire string is numbers only (and not empty)
/^[a-zA-Z0-9]+$/ => ensures entire string is letters or numbers only (and not empty)


--

---John Holmes...

Amazon Wishlist: www.amazon.com/o/registry/3BEXC84AB3A5E/

php|architect: The Magazine for PHP Professionals – www.phparch.com

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to