Попробуйте это:
if (preg_match('/^[\p{L&} -]+$/u', $a)) {
# Only letters (any script), spaces and hyphens
} else {
# Emtpy string or other characters too
}
\p{L}
соответствует любому символу, который может быть частью слова в любом сценарии, включая иероглифы (например, китайские символы). \p{L&}
соответствует только буквам алфавитных шрифтов (латинский, греческий, кириллица, тайский и т. Д.)