Шаблон ввода HTML для буквенно-цифровых символов, подчеркивания, тире и точки - PullRequest
0 голосов
/ 09 мая 2019

Я хотел сформировать шаблон в поле ввода HTML, которое может иметь только ниже допустимых символов:

  • буквенно-цифровой (a-zA-Z0-9)
  • подчеркивание (_)
  • тире (-)
  • точка (.)

Я пытаюсь pattern="[a-zA-Z0-9_-\.]", но это не работает.Не уверен почему.Как я могу это сделать?

Некоторые действительные примеры ввода:

  • aA12 _-.

  • Aasdj

  • 123123

  • _Afsdf.

  • _end.1

Ответы [ 2 ]

1 голос
/ 09 мая 2019

Ваш шаблон соответствует только одному символу. Если вы хотите сопоставить несколько символов, включая ноль, добавьте *, хотя бы к одному символу добавьте +, например,

<input pattern="[a-zA-Z0-9_-\.]+" />

подробнее на https://www.w3schools.com/tags/att_input_pattern.asp

0 голосов
/ 09 мая 2019

Попробуйте:

/^[\w\._-]+$/

Примечание:

1) Используйте - в конце скобки.

2) Вам не разрешено использовать пробел между словами (если вы хотите пробел между словами, вставьте пробел в скобки так: /^[\w\._ -]+$/)

patt = /^[\w\._-]+$/;

function test(){
  var v = document.getElementById('txt').value;
  v = v.trim();
  console.log(patt.test(v));
}
<input type="text" id="txt"> 
<button onclick="test()">test</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...