2016-10-28 2 views
0

Как я могу достичь этого пароля (обратная косая черта, косая черта, одинарная кавычка, двойные кавычки), тогда и тогда только это не позволит, иначе оно вернет true, используя пользовательскую проверку. У меня есть много идей о preg_match, поэтому все предложения приемлемы.preg_match, чтобы разрешить специальные специальные символы в строке

Я попытался под кодом, чтобы достичь этого, но не могу добиться успеха.

У кого-нибудь есть предложения/идеи?

PHP код:

public function check_password($str){ 
     return (!preg_match("/^[[email protected]#$%^&*()_-+|;:<>,.?]+$/i", $str)) ? FALSE : TRUE; 
    } 

если я положу исключить (обратную косую черту, косую черту, одиночные кавычки, двойные кавычки), то он должен позволить мне хранить пароль в базе данных

Например:

Password : [email protected]#$%^&*()_-+| ;:<>, // true 
Password : /12345    //false 
Password : [email protected]#$%^&*()_-+| ;:<> //true(here white space also allowed) 
+0

Вы хотите проверить только те персонажи, на которых вы настаиваете. Итак, что-то вроде '//\\\/\ '"] /' '. Вы не хотите, чтобы там такие вещи, как' a-z0-9', так как это удовлетворило бы тест даже без каких-либо экзотических символов. – arkascha

+0

@ arkascha Спасибо за ответ –

+0

, так как я могу добиться этого, потому что я попытался с '/ [\\\/\' "]/', но его не работает :( –

ответ

1

Если я правильно понимаю, что вам нужны только эти символы - обратная косая черта, косая черта, одинарная кавычка, двойные кавычки - отключен для проверки пароля. Так вот код:

public function check_password($str){ 
    return (preg_match('/^[^\\\"\'\/]+$/i', $str)); 
} 
+0

похоже на вопрос с кодом –

+0

Спасибо за комментарий. Исправлена. – krasipenkov

+0

его возвращает true для пароля/12345 вместо false –

0

Попробуйте, как это,

public function check_password($str){ 
return (!preg_match('/^(?=.*\d)(?=.*[A-Za-z])[[email protected]#$%]{8,12}$/', $str)) ? FALSE : TRUE; 
} 
+0

, если я собираюсь хранить пароль с! @ # $%^& *() _- + | ;: <>, затем выдает false вместо true –

+0

Просто удалите & попробуйте с помощью оператора '!'. –

Смежные вопросы