phpregexvalidationpreg-matchalphanumeric

Validate if a string is alphanumeric


I want the user to be able to enter every character from A-Z and every number from 0-9, but I don't want them entering "special characters".

Code:

if (preg_match("/^[a-zA-Z0-9]$/", $user_name)) {
    #Stuff
}

How is it possible for it to check all of the characters given, and then check if those were matched? I've tried preg_match_all(), but I didn't honestly understand much of it.

Like if a user entered FaiL65Mal, I want it to allow it and move on. But if they enter Fail{]^7(,, I want it to appear with an error.


Solution

  • You just need a quantifier in your regex:

    Zero or more characters *:

    /^[a-zA-Z0-9]*$/
    

    One or more characters +:

    /^[a-zA-Z0-9]+$/
    

    Your regex as is will only match a string with exactly one character that is either a letter or number. You want one of the above options for zero or more or one or more, depending on if you want to allow or reject the empty string.