it-swarm.com.de

Wie kann man überprüfen, ob ein PHP-String nur englische Buchstaben und Ziffern enthält?

In JS habe ich diesen Code verwendet:

if(string.match(/[^A-Za-z0-9]+/))

aber ich weiß nicht, wie es in PHP geht.

44
Danny Fox

Verwenden Sie preg_match () .

if (!preg_match('/[^A-Za-z0-9]/', $string)) // '/[^a-z\d]/i' should also work.
{
  // string contains only english letters & digits
}
74
Frosty Z
if(ctype_alnum($string)) {
    echo "String contains only letters and numbers.";
}
else {
    echo "String doesn't contain only letters and numbers.";
}
25
vineeth

Sie können beispielsweise die Funktion preg_match () verwenden.

if (preg_match('/[^A-Za-z0-9]+/', $str))
{
  // ok...
}
9
evilone

Schauen Sie sich diese Verknüpfung an

if(!preg_match('/[^\W_ ] /',$string)) {

}

der class [^\W_] stimmt mit einem beliebigen Buchstaben oder einer Ziffer überein, ist jedoch nicht unterstrichen Beachten Sie das !-Symbol. Sie müssen so keine Benutzereingaben scannen. 

6
kushalvm
if(preg_match('/[^A-Za-z0-9]+/', $str)) {
    // ...
}
5
Vitamin

wenn Sie prüfen müssen, ob es Englisch ist oder nicht. Sie könnten die Funktion unten verwenden. könnte jemandem helfen ..

function is_english($str)
{
    if (strlen($str) != strlen(utf8_decode($str))) {
        return false;
    } else {
        return true;
    }
}
2
shakee93
if(preg_match('/^[A-Za-z0-9]+$/i', $string)){ // '/^[A-Z-a-z\d]+$/i' should work also
// $string constains both string and integer
}

Die Karotte befand sich an der falschen Stelle, sodass nach allem gesucht werden musste, außer nach dem, was sich in den eckigen Klammern befand. Wenn die Möhre draußen ist, sucht sie nach dem, was in den eckigen Klammern steht.

1
user3439891
if (preg_match('/^[\w\s?]+$/si', $string)) {
    // input text is just English or Numeric or space
}
0
Ramin Rabiee

PHP kann einen String mit einem regulären Ausdruck vergleichen, indem er preg_match(regex, string) folgendermaßen verwendet:

if (!preg_match('/[^A-Za-z0-9]+/', $string)) {
    // $string contains only English letters and digits
}
0
Saurabh