PHP проверяет ввод буквенно-цифровой плюс несколько символов - PullRequest
0 голосов
/ 20 февраля 2010

Нужен способ проверки поля ввода (в PHP), чтобы оно могло содержать только следующее:

  • Любая буква
  • Любое число
  • любой из этих символов: - (тире) _ (подчеркивание) @ (в). (точка) или ПРОБЕЛ

Поле может начинаться или заканчиваться любым из них (но не пробелом, но я могу обрезать его перед переходом в функцию проверки) и не содержать ни одного, ни одного, ни любого числа (так что просто проверьте, чтобы убедиться, что все в ввод является одним из вышеперечисленных).

Я хотел бы иметь возможность сделать что-то вроде этого:

funcion is_valid ( $in_form_input ) {
  // returns true or false
}

if ( is_valid($_POST['field1']) ) {
  echo "valid";
} else {
  echo "not valid";
}

Ответы [ 3 ]

4 голосов
/ 20 февраля 2010
return !preg_match('/[^-_@. 0-9A-Za-z]/', $in_form_input);
3 голосов
/ 28 ноября 2012

Лучший способ - использовать это так: -

$str = "";
function validate_username($str) 
{
    $allowed = array(".", "-", "_", "@", " "); // you can add here more value, you want to allow.
    if(ctype_alnum(str_replace($allowed, '', $str ))) {
        return $str;
    } else {
        $str = "Invalid Username";
        return $str;
    }
}
3 голосов
/ 20 февраля 2010

Использование preg_match():

if (preg_match('!^[\w @.-]*$!', $input)) {
  // its valid
}

Примечание: \w является синонимом [a-zA-Z0-9_].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...