Проверка арабского текста в формах: имена, свободный ввод и ловушки
Большинство руководств по проверке данных в формах написаны для английского языка. Их примеры рассчитаны на латиницу, и при переносе на арабский язык они ведут себя непредсказуемо. Шаблон, который, как вам кажется, разрешает «Только арабские буквы», может пропускать цифры. Правило, разрешающее одно слово, может отклонить «Abd Allah». В этой статье мы разберем, как это работает на самом деле, чтобы ваши поля с арабским текстом принимали нужные данные.
Что вам может потребоваться
- «Это поле должно быть на арабском». (Имя в официальной форме, поле для министерства.)
- «Это поле должно быть на английском». (Имя, которое должно совпадать с паспортом.)
- «Можно и то, и другое». (Смешанная аудитория.)
- «Только цифры». (Номер телефона или ID. См. отдельную статью о номерах телефонов.)
Готовый формат: Только арабские буквы
В Помощник по шаблонам есть формат под названием Только арабские буквы. Он выглядит как ^[ء-ي ]+$ и принимает буквы от хамзы (ء) до йа (ي) и пробелы. Мы протестировали его на типичных ответах:
| Ответ | Результат |
|---|---|
| سارة محمد (два слова) | принято |
| عبد الله | принято |
| ليلى, فاطمة (йа, та марбута) | принято |
| سارة2 (содержит цифру) | отклонено |
| Sara (латиница) | отклонено |
| مُحَمَّد (с диакритикой) | отклонено |
| پروین (персидские буквы) | отклонено |
Также есть формат Только английские буквы, ^[A-Za-z ]+$, для имен, которые должны быть написаны латиницей.
Два из этих результатов — это решения, которые вы должны принять осознанно:
- Диакритика отклоняется. Если кто-то введет имя с огласовками, ответ не пройдет проверку. Для имен это обычно то, что нужно, так как люди редко ставят огласовки; если же для вашего поля они важны, напишите свой шаблон.
- Персидские и урду буквы отклоняются. Диапазон охватывает только арабский алфавит. Если среди ваших респондентов есть те, кто пишет на этих языках, данный формат их не пропустит.
Ловушка: самостоятельное написание с \p{Arabic}
Часто используют сокращение ^\p{Arabic}+$, что означает «любой символ арабского алфавита». Это выглядит правильно, но на деле работает свободнее, чем кажется. Мы проверили:
| Ответ | Результат |
|---|---|
| سارة | принято |
| سارة محمد (пробел) | отклонено |
| مُحَمَّد (диакритика) | принято |
| پروین (персидские буквы) | принято |
| ٠٧٩ (арабские цифры) | принято |
В итоге, он отклоняет имя из двух слов, так как пробел не является арабской буквой, и принимает цифры, что редко требуется при настройке «Только арабские буквы». Для поля с именем используйте готовый формат.
Смешанный арабский и английский текст
Готового формата «любой из них» нет. Если подходят оба варианта, напишите свой шаблон в поле, например ^[ء-ي A-Za-z]+$, который принимает арабские буквы, латиницу и пробелы. Протестируйте его с помощью Проверить значение, используя реальные имена, которые будут вводить респонденты, прежде чем публиковать форму. Обратите внимание, что он также принимает смешанный текст в одном ответе, например «Sara سارة».
Стоит ли вообще ограничивать имена?
Часто — нет. Имена содержат апострофы, дефисы и буквы из других алфавитов, а строгое правило отсеивает реальных людей, сообщая им, что они неправильно ввели собственное имя. Шаблон оправдан, когда от формата данных зависит дальнейшая обработка: реестр, принимающий только арабские имена, или сертификат на арабском языке. Если таких требований нет, лучше ограничиться длиной: минимум два символа исключит ввод одной буквы, а максимум ограничит размер поля.
Варианты, которые нельзя проверить
В арабском языке есть пары букв, которые выглядят похоже и часто взаимозаменяемы: ي и ى, ة и ه, различные формы алифа (ا أ إ آ). Шаблон принимает их все, так как это буквы, поэтому проверка не приведет их к единому виду. Если вы планируете подсчитывать или сопоставлять ответы позже (например, сколько человек написали название города), предложите список вариантов вместо свободного ввода, чтобы все выбирали одинаковое написание.
Где это применяется
Шаблон проверяется по публичной ссылке, на странице заполнения в приложении и при импорте CSV-файла. Он не проверяется в приложении Collect, так как офлайн-устройство не может надежно оценивать шаблоны. Ответ, полученный через Collect, всегда сохраняется, и если он не соответствует шаблону, он будет помечен для вашей проверки.
В Pulseform
См. создание формы и правил для полей для получения информации о поле шаблона и Помощнике по шаблонам, а также общую информацию в проверке данных формы. Если вам нужен только шаблон, конструктор шаблонов создаст его за вас.
Попробуйте на своих данных
Создайте опрос или форму и смотрите результаты по мере поступления ответов.
Начать бесплатный пробный период на 14 дней