PHP проверяет, не является ли поле ввода не пустым и имеет ли оно специальные символы - PullRequest
0 голосов
/ 05 ноября 2018

Я хочу проверить, не является ли поле ввода не пустым и имеет ли он специальные символы. Я попробовал это:

function stringValidator($field) {   

    if(!empty($field) && (!filter_var($field, FILTER_SANITIZE_STRING)))
    {

            return "You typed $field: please don't use special characters 
            '<' '>' '_' '/' etc.";

    } }

PHP даже не пытался проверить таким образом. Любые советы?

1 Ответ

0 голосов
/ 05 ноября 2018

A preg_match() вызов будет работать хорошо.

Код: ( Демо )

function stringValidator($field) {   
    if(!empty($field) && preg_match('~[^a-z\d]~i', $field)) {
            return "You typed $field: please don't use special characters '<' '>' '_' '/' etc.";
    }
    return "valid";  // empty or valid
}

$strings = ["hello", "what_the"];
foreach ($strings as $string) {
    echo "$string: " , stringValidator($string) , "\n";
}

Выход:

hello: valid
what_the: You typed what_the: please don't use special characters 
            '<' '>' '_' '/' etc.

Или ctype_ вызов:

Код: ( Демо )

function stringValidator($field) {   
    if(!empty($field) && !ctype_alnum($field)) {
            return "You typed $field: please use only alphanumeric characters";
    }
    return "valid";  // empty or valid
}

$strings = ["hello", "what_the"];
foreach ($strings as $string) {
    echo "$string: " , stringValidator($string) , "\n";
}

Выход:

hello: valid
what_the: You typed what_the: please use only alphanumeric characters
...