Шаблон HTML арабские буквы

Я хочу вставить арабские буквы в шаблон так же, как английские буквы

pattern="[a-zA-Z0-9-_. ]{1,30}"

Я понятия не имею, как выполнить действие.


person user2303038    schedule 15.05.2013    source источник


Ответы (2)


Диапазон для арабского и персидского языков является общим, поэтому этот код можно использовать и для арабского языка.

[أ-يa-zA-Z]

Это ссылка для поиска диапазона символов языков Unicode:

preg_replace и preg_match арабских символов

http://unicode.org/charts/

person Javascript Coder    schedule 15.05.2013

Атрибут HTML5 pattern следует синтаксису регулярных выражений JavaScript, что делает работу довольно неудобной. Например, вы не можете проверить свойства персонажа. Вместо этого вам нужно перечислить разрешенные символы или диапазоны символов.

Используя нормативный файл Scripts.txt (от Консорциума Unicode), который определяет сценарий (систему письма) всех персонажей я построил следующим образом:

pattern=
"[a-zA-Z0-9-_. \
\u0620-\u063F\u0641-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\
\u06E5-\u06E6\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0750-\u077F\
\u08A0\u08A2-\u08AC\uFB50-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\
\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]{1,30}"

Начиная с набора всех символов с алфавитом, определенным как арабский, я выбрал те, которые объявлены как буквы (общая категория Lo или Lm), а затем пропустил те, что находятся за пределами BMP, базовой многоязычной плоскости.

Символы вне BMP используются очень редко, и для их представления в синтаксисе JavaScript вам нужно либо включить сами символы, либо использовать две нотации \u для каждого символа (по одной для каждого компонента суррогатной пары). Это не звучит реалистично.

Это, конечно, «зашитое» решение: оно может нуждаться в обновлениях, если в Unicode добавляются новые арабские буквы или шрифт символа изменяется с арабского или на арабский (что крайне маловероятно). Но я не ожидаю, что при моей жизни в BMP будут добавлены новые арабские буквы.

person Jukka K. Korpela    schedule 15.05.2013
comment
imageshack.us/photo/my-images/89/sanstitreyhf.png Это то, что я получил после добавления шаблона, который вы мне дали. В браузере имя хорошо отображается на арабском языке, но это может быть проблема с сервера или локального хоста, потому что оно отображается как неопределенные символы ‹pre› PrivateImg -0489351267_أليسبيب ‹/pre› - person user2303038; 15.05.2013
comment
Что должно показывать изображение? Вопрос был о проверке ввода. Что будет после этого - совсем другой вопрос. Пожалуйста, проверьте, выполняет ли атрибут то, что было запрошено, и если есть проблемы с обработкой данных на стороне сервера, опубликуйте их как отдельный вопрос (вопросы). (Похоже, дело в том, что обработчик формы на стороне сервера не готов обрабатывать данные в используемой кодировке, но никаких реальных данных по этому поводу предоставлено не было, и это это другой вопрос.) - person Jukka K. Korpela; 15.05.2013