PHP Regex проверяет буквы и испанский акцент - PullRequest
6 голосов
/ 22 ноября 2011

Как я могу добавить / импровизировать свой код, чтобы испанский акцент считался действительным в дополнение к обычному алфавиту (az)

В моем коде есть следующее

public static function IsAlpha($s){
  $reg = "#[^a-z\s-]#i";
  $count = preg_match($reg, $s, $matches);
  return $count == 0;
}

Ответы [ 2 ]

20 голосов
/ 22 ноября 2011

Как указано в ответе на на этот вопрос , вы можете сопоставлять символы с ударением, используя полное Буква Свойство Юникод \p{L}.Это включает в себя обычные a-z символы наряду с акцентированными, поэтому замените a-z в своем выражении следующим образом:

$reg = "#[^\p{L}\s-]#u";

Обратите внимание, что для использования этого вам необходим модификатор UTF-8 u после вашего закрывающего разделителя, как говорят в документах, такие Unicode " типы символов доступны, когда выбран UTF-8 ".

1 голос
/ 22 ноября 2011

Я думаю, вы можете использовать шестнадцатеричное представление каждой буквы:

<code><?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 '
';

Я не знаю, есть ли все буквы, но вы можете добавить больше с этой ссылкой .

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