как сопоставить все символы языка, такие как английский, греческий, китайский, за исключением специальных символов

#javascript #regex

#javascript #регулярное выражение

Вопрос:

У меня есть поле отображаемого имени, которое я должен проверить с помощью регулярного выражения JavaScript. Мы должны сопоставить символы всех языков, таких как китайский, немецкий, испанский, в дополнение к символам английского языка, за исключением специальных символов, таких как * (). Я поражен тем, как сопоставить эти нелатинские символы. Приветствуется любая помощь.

Ответ №1:

Если ваш движок регулярных выражений может соответствовать категориям Unicode, регулярное выражение p{L} соответствует любой букве на любом языке. JavaScript не поддерживает категории Unicode. Если вы используете XRegExp с плагином Unicode, то вы можете сделать это следующим образом в JavaScript:

 XRegExp('^\p{L} $').test($input)
  

Это вернет true, если $input состоит из одной или нескольких букв и ничего больше.

Ответ №2:

К сожалению, в javascript нет большой поддержки unicode для регулярных выражений unicode

Комментарии:

1. поэтому я бы использовал ajax (в случае, если javascript включен) .. или простую проверку на стороне сервера

Ответ №3:

Я использовал биты XRegExp для такого рода вещей, и до сих пор это работало так, как ожидалось. Здесь есть плагины Unicode: http://xregexp.com/plugins /