Регулярное выражение PHP для разрешения буквенно-цифровых символов, дефисов и точек - PullRequest
0 голосов
/ 25 марта 2010

Я действительно не понимаю регулярные выражения, и мне было интересно, что делают следующие регулярные выражения. Я хочу, чтобы мой адрес и имя принимали ., - и буквенно-цифровые символы.

Будет ли это работать или есть необходимость в улучшении? Плюс, если кто-то может сломать регулярные выражения '/^[A-Z0-9 \'.-]{1,255}$/i', чтобы я мог лучше понять каждую часть.

Вот код php.

if (preg_match ('/^[A-Z0-9 \'.-]{1,255}$/i', $_POST['address'])) {
    $address = mysqli_real_escape_string($mysqli, htmlentities($_POST['address']));
} else {
    echo '<p class="error">Please enter your address!</p>';
}

if (preg_match ('/^[A-Z0-9 \'.-]{1,255}$/i', $_POST['name'])) {
    $name = mysqli_real_escape_string($mysqli, htmlentities($_POST['name']));
} else {
    echo '<p class="error">Please enter your name!</p>';
}

Ответы [ 2 ]

3 голосов
/ 25 марта 2010

/: разделитель регулярных выражений

^: закрепить совпадение в начале строки

[A-Z0-9 \'.-]: соответствует букве (A-Z, без ударных символов), числу, пробелу, апострофу, точке или тире

{1,255}: от 1 до 255 раз.

$: закрепить совпадение в конце строки. Вместе с ^ это обеспечивает соответствие всей строки, а не только подстроки.

/: разделитель регулярных выражений

i: сделать регулярное выражение без учета регистра

0 голосов
/ 25 марта 2010

Ваш шаблон в основном допускает любую комбинацию (от 1 до 255 символов) следующего: A-Z, 0-9, пробел, \, ',.

Решите сами, достаточно ли это хорошо.

Что касается вашего шаблона:

/^[A-Z0-9 \'.-]{1,255}$/i 

i в конце означает, что он не чувствителен к регистру

/^[A-Z0-9 \'.-]{1,255}$/ 

Косая черта обозначает начало и конец рисунка

^[A-Z0-9 \'.-]{1,255}$

^ - начало, а $ - конец строки, которую вы ищете

[A-Z0-9 \'.-]{1,255}

Это позволяет и комбинацию символов в скобках с 1 до 255 повторений

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