2015-01-26 1 views
1

В JS, я могу запустить:Почему HTML5 checkValidity() возвращает разные результаты из JavaScript regexp.test()?

/[a-z]/.test('foo'); 

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

Однако:

<input pattern="[a-z]" value="foo" required /> 

и

console.log(document.querySelector('input').checkValidity()) 

Возвращает false.

Почему HTML5 checkValidity возвращает разные результаты из JavaScript regexp.test()?

ответ

2

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

- https://developer.mozilla.org/en/docs/Web/HTML/Element/Input

Так pattern="[a-z]" эквивалентно /^[a-z]$/.test('foo');