Как я могу добавить / импровизировать мой код, поэтому испанский акцент будет считаться действительным в дополнение к нормальному алфавиту (az)
В моем коде есть следующее:
public static function IsAlpha($s){ $reg = "#[^az\s-]#i"; $count = preg_match($reg, $s, $matches); return $count == 0; }
Как найдено в ответе на этот вопрос , вы можете сопоставить символы с акцентом, используя полное свойство Letter Unicode \p{L}
. Это включает в себя регулярные символы az
наряду с акцентированными, поэтому замените az
в своем выражении следующим образом:
$reg = "#[^\p{L}\s-]#u";
Обратите внимание, что для использования этого вам понадобится модификатор UTF-8 u
после вашего закрывающего разделителя, поскольку документы говорят, что такие типы символов Unicode доступны, когда выбран режим UTF-8 .
Я думаю, вы можете использовать шестнадцатеричное представление каждой буквы:
<?php function IsAlpha($sString) { $reg = "#[a-zA-Z\xE1\xE9\xED\xF3\xFA\xC1\xC9\xCD\xD3\xDA\xF1\xD1]+#i"; $count = preg_match_all($reg, $sString, $matches, PREG_OFFSET_CAPTURE); return $matches; } echo '<pre>'; print_r(IsAlpha("abcdefgh ñ á é í ño 123 asd asáéío nmas asllsdasd óúfl ÑABDJÓ ÚñÍÉ")); echo '</pre>';
Я не знаю, есть ли все письма, но вы можете добавить больше с помощью этой ссылки .