Я стараюсь, чтобы мой регистрационный скрипт принимал только буквы и æøå, но я ничего не пробовал до сих пор. Он все равно не примет æøå.PHP preg_match не разрешает æøå
Это мой код до сих пор
if ($_POST['first'] != "" && preg_match("%^[-a-zA-Z æøå\/]+$%", $_POST['first']) == true && strlen($_POST['first']) > 0) {
$input_first = mysqli_real_escape_string($con,$_POST['first']); }
else { header("Location: ../register.php?n=2"); exit; die(); }
Что я делаю неправильно?
Работы здесь, https://eval.in/716341. Выпускаете ли «æøå» на сервер в качестве этих символов? Вам не нужны все эти проверки. Из-за '+' в регулярном выражении вы знаете, что есть значение, поэтому оно не будет пустым и длина будет> 1. – chris85
Если ваш шаблон и ваша строка кодируются в кодировке UTF-8, вам необходимо установить [ 'u' modifier] (http://php.net/manual/en/reference.pcre.pattern.modifiers.php). Обратите внимание, что ваши тесты являются избыточными. '! =" "И' strlen> 0' совпадают, и ваше регулярное выражение запрещает пустое значение из-за вашего '+' квантификатора. – julp