2013-05-09 3 views
1

У меня есть текстовое поле ввода в моей HTML-форме, которое ищет шаблон регулярного выражения, как показано ниже. Я ищу все, что нужно ввести, кроме пробелов или пробелов. Я пробовал все нижеприведенное ниже, и ни один из них не позволяет мне вводить какой-либо обычный текст, такой как «hello world» и «helloworld». Все предложения приветствуются. БлагодаряСоответствие шаблону регулярного выражения в HTML5 не работает должным образом

<input name="item" type="text" size="25" autofocus="autofocus" pattern="^\S$" title="Enter something valid"/> 

<input name="item" type="text" size="25" autofocus="autofocus" pattern="^[^\s]*$" title="Enter something valid"/> 

<input name="item" type="text" size="25" autofocus="autofocus" pattern="^[\S]*$" title="Enter something valid"/> 

EDIT:

после снятия с якоря, это работает на "HelloWorld", но не для "привет мир". Поэтому я думаю, что это связано с шаблоном регулярного выражения.

<input name="item" type="text" size="25" autofocus="autofocus" pattern="[^\s]*" title="Enter something valid"/> 
+0

Возможно, атрибуту шаблона не нужны разделители? –

+0

Я отредактировал код выше, у меня не было разделителей, когда я тестировал. но все равно не повезло –

+1

Было бы проще, если бы вы просто добавили атрибут 'required'. Это предотвратит отправку пустых значений –

ответ

1

[^\s]* будет соответствовать против чего-либо, что не содержит пробелов, поэтому пространство слов не будут совпадать.

Возможно, вы захотите что-то вроде .*[^\s].*, чтобы соответствовать строке с хотя бы одним непространственным символом.

Атрибут required, вероятно, является лучшим способом защиты от пробелов (или ^$ должен работать).

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