2013-05-15 2 views

ответ

3

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

[أ-يa-zA-Z] 

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

preg_replace and preg_match arabic characters

http://unicode.org/charts/

+0

ereg устарел несколько лет. Лучше не рекомендовать это больше .. – Evert

2

Атрибут 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, Basic Multilingual Plane.

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

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

+0

http://imageshack.us/photo/my-images/89/sanstitreyhf.png/ Это то, что я получил после добавления шаблона, который вы мне дали, В браузере имя хорошо видно на арабском языке, но это может быть проблема с сервера или локального хоста, потому что он отображается как неопределенные символы.

 PrivateImg-0489351267_أليسبيب 
user2303038

+0

Какое изображение должно отображаться? Вопрос касался проверки ввода. Что происходит после этого - совершенно другая проблема. Пожалуйста, проверьте, выполняет ли атрибут то, что было запрошено, и если есть проблемы с обработкой * серверной стороны * данных, размещайте их как отдельный вопрос (ы). (Похоже, что это вопрос обработчика формы на стороне сервера, который не готов обрабатывать данные в используемой кодировке, но никаких реальных данных об этом не было, и это * - это другой вопрос.) –

+0

ah вы правы: D проблема шаблона решена благодаря – user2303038

Смежные вопросы