Как разрешить только буквы и специальные символы с регулярным выражением?
Я предлагаю вам использовать строитель REGKS Builder и экспериментировать с большим количеством примеров с правой стороны. Есть много вариантов, чтобы выполнить эту работу. Если вы хотите быть явным, вы можете использовать:
/[a-zA-Z!@#$%¨&*()-=+/*.{}]/
Ответ Тони также будет работать, но содержит больше дополнительных символов, чем те, которые вы определили в своем комментарии.
Эта
$str = $_REQUEST["htmlstringinput"]; preg_match("([\w\-]+[@#%.])", $str);
для букв, цифр и специальных символов в этом специальном диапазоне символов [@#%.]
разрешены
и это
$str = $_REQUEST["htmlstringinput"]; preg_match("([-a-zA-Z]+[@#%.])", $str);
только для букв и специальных символов в том же диапазоне символов, что и выше. Работал для меня. Для дальнейшего чтения и исследования вы можете перейти по адресу : http://gskinner.com/RegExr/
/[\p{L}\p{P}]+/u
соответствует буквам и пунктуационным символам. Или что вы имели в виду под «специальными символами»?
все символы не являются числом? как это сделать:
/[^\d]*/
Используйте следующий код в .htaccess, чтобы заблокировать все URL-адреса с номером (согласно комментариям OP)
Options +FollowSymlinks -MultiViews RewriteEngine on RewriteCond %{REQUEST_URI} ![0-9] RewriteRule ^user/ /index.php?goto=missed [NC,L]