Как использовать атрибут шаблона ввода HTML5 для проверки только латинских и расширенных латинских символов

Я работаю над веб-формой, в которой пользователи должны вводить текст, который должен содержать только латинские символы, включая расширенные латинские символы (например, ñ, é, ü и т. д.), но должен исключать любые нелатинские символы (например, кириллицу, китайский, арабский и др.). Я хочу использовать атрибут шаблона HTML5 для элемента, чтобы обеспечить эту проверку на стороне клиента.

До сих пор я пытался использовать шаблон регулярного выражения, такой как ^[A-Za-z]+$, для соответствия латинским символам, но это не включает расширенные латинские символы. Вот код, который у меня сейчас есть:

<input type = "text" pattern = "^[A-Za-z]+$" title = "Please enter Latin characters only">

Это хорошо работает для основных латинских букв, но не позволяет проверить расширенные латинские символы. Я ищу способ изменить этот шаблон, включив в него все латинские символы, включая расширенные.

Может ли кто-нибудь помочь мне с правильным шаблоном регулярного выражения для этой цели? Кроме того, существуют ли какие-либо потенциальные ловушки или соображения, о которых мне следует знать при использовании атрибута шаблона для этого типа проверки?

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
0
111
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Существует интересная работа, в которой вы должны просто использовать \p{sc=Latin}* в качестве шаблона для идентификации всех расширенных латинских символов, вы также должны иметь возможность указать его на основе тега Unicode Script (wiki здесь). Просто убедитесь, что список по умолчанию охватывает все, что вам нужно.

Я попробовал это, но экранирование свойств Unicode, похоже, не поддерживается браузерами. если бы я переключился на JavaScript, это было бы правильное решение.

tony 19.03.2024 06:36

@tony, мне удалось запустить его в чистом HTML без использования Javascript - onecompiler.com/html/427q8nbvx возможно, мне не хватает чего-то еще, что было включено в компиляцию, но это должно работать

Karan Shishoo 19.03.2024 06:50

Однако это не работает с числами: если я попытаюсь включить числа и другие расширенные символы, это не сработает.

tony 19.03.2024 07:26

@tony это все еще регулярное выражение? вы можете расширить регистр, чтобы он также работал с числами, используя [\p{sc=Latin}\d]*, и, как я упоминал ранее, вы можете использовать вики-сайт Unicode, чтобы указать, какие буквы вы хотите принимать или отклонять, пример кода по-прежнему работает со всеми имеющимися у вас символами приведены в качестве примера, какие из них не работают?

Karan Shishoo 19.03.2024 07:35

Ответ: [\p{sc=Latin}\p{Nd}\p{P}\p{S}]+

tony 19.03.2024 07:40

Другие вопросы по теме