PHP - regex to allow letters and numbers only

PhpRegexPreg Match

Php Problem Overview


I have tried:

preg_match("/^[a-zA-Z0-9]", $value)

but im doing something wrong i guess.

Php Solutions


Solution 1 - Php

  1. Use PHP's inbuilt ctype_alnum --

You dont need to use a regex for this, PHP has an inbuilt function ctype_alnum which will do this for you, and execute faster:

<?php
$strings = array('AbCd1zyZ9', 'foo!#$bar');
foreach ($strings as $testcase) {
    if (ctype_alnum($testcase)) {
        echo "The string $testcase consists of all letters or digits.\n";
    } else {
        echo "The string $testcase does not consist of all letters or digits.\n";
    }
}
?>

2. Alternatively, use a regex

If you desperately want to use a regex, you have a few options.

Firstly:

preg_match('/^[\w]+$/', $string);

\w includes more than alphanumeric (it includes underscore), but includes all of \d.

Alternatively:

/^[a-zA-Z\d]+$/

Or even just:

/^[^\W_]+$/

Solution 2 - Php

You left off the / (pattern delimiter) and $ (match end string).

preg_match("/^[a-zA-Z0-9]+$/", $value)

Solution 3 - Php

  • Missing end anchor $
  • Missing multiplier
  • Missing end delimiter

So it should fail anyway, but if it may work, it matches against just one digit at the beginning of the string.

/^[a-z0-9]+$/i

Solution 4 - Php

As the OP said that he wants letters and numbers ONLY (no underscore!), one more way to have this in php regex is to use posix expressions:

/^[[:alnum:]]+$/

Note: This will not work in Java, JavaScript, Python, Ruby, .NET

Solution 5 - Php

try this way .eregi("[^A-Za-z0-9.]", $value)

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJason94View Question on Stackoverflow
Solution 1 - PhpSW4View Answer on Stackoverflow
Solution 2 - PhpKendall HopkinsView Answer on Stackoverflow
Solution 3 - PhpKingCrunchView Answer on Stackoverflow
Solution 4 - PhpAndrewView Answer on Stackoverflow
Solution 5 - PhppoojaView Answer on Stackoverflow