Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Проверка формы. Регулярное выражение (https://javascript.ru/forum/events/54102-proverka-formy-regulyarnoe-vyrazhenie.html)

Decode 03.03.2015 17:13

Проверка формы. Регулярное выражение
 
Мне нужно проверить заполнено ли хотя бы одно поле <input>. Там может быть введен любой символ кроме пробелов, для этого я использовал регулярное выражение. Но почему-то при вводе одного символа срабатывает alert. Что не так? Ведь + в регулярке означает от {1,}.

<form action="" id="form" >
    <input type="text" class="auth" /> <br />
    <input type="text" class="auth" /> <br />
    <input type="text" class="auth" /> <br />
    <input type="text" class="auth" /> <br />
    <input type="submit" />
</form>

document.getElementById('form').addEventListener('submit', function(e) {
    var inputs = document.querySelectorAll('.auth'), result, i;
    
    for(i = 0; i < inputs.length; i++) {
        if( inputs[i].value.match(/^\S[a-zа-я0-9_]+/i) ) {
            result = true;
            break;
        }
    }
    
    if(!result) {
        e.preventDefault();
        alert('Заполните хотя бы одно поле!');
    }
});

danik.js 03.03.2015 17:27

Цитата:

Сообщение от Decode
\S[a-zа-я0-9_]+

\S - любой непробельный символ. За ним должен следовать:
[a-zа-я0-9_]+ - любой символ из кирилицы или латиницы или число или подчеркивание. От одного и более.

Таким образом твоя регулярка требует как минимум два символа )

Decode 03.03.2015 17:31

danik.js, точно, спс.

Ilya_Nsk 13.03.2015 09:43

валидация формы на стороне клиента не есть гут.

krasovsky 13.03.2015 11:12

Цитата:

Сообщение от Ilya_Nsk
валидация формы на стороне клиента не есть гут.

Чушь полная. Отсутствие валидации на стороне сервера - вот что не есть гуд.


Часовой пояс GMT +3, время: 12:49.