Здраствуйте , мне нужно чтобы когда заполняли textfield ,с помощью php проверялось что как минимум 3 слова написано не поможете заранее спасибо.
А почему бы не посчитать количество пробелов? Задать маску типа такой: [a-z+]/s[a-z+]/s[a-z+] (написал от балды, действительно жарко...)
lexa - а его маска может включать определение количества символов в слове гм просто так ... типа оффтоп
lexa Нэ надо смеяться... Потому как твоя версия пропустит вариант строку в три пробела, а это никак не три слова...
Johnatan, вариант с латинскими буквами меньше катит. К варианту с substr_count() придётся и preg_replace('/\s+/', ' ', $text) и trim() вставить. Хм, лучше тогда explode(' ', $text).
На JS можно так: [js]<script> function check(form) { if(form.text.value.match(/^[^\s]+\s[^\s]+\s[^\s]+$/img)) { return true; } else { alert('3 слова минимум!!!'); return false; } } </script> <form method="POST" onSubmit="return check(this)"> <input type="text" name="text"><br> <input type="submit"> </form>[/js] На PHP так: PHP: <?php if(preg_match('~^[^\s]+\s[^\s]+\s[^\s]+$~is', $_POST['text'])) { echo('Всё нормально'); } else { echo('Не всё нормально'); } ?>
preg_replace('/\s+/', ' ', $text) - если я не ошибаюсь вырубит все пробелы.. Тогда уж preg_replace('/\s{2,}/', ' ', $text) А как насчёт проверки на циферки? Ведь если каждое слово будет состоять из цифр, то это уже и не слово вовсе.. )))
Не, /\s+/ по идеи заменит череду пробелов на один. Если число часть предложения, то значит это слово. Ведь число может быть и прописью. А вообще, если очень уж серьёзно подходить: PHP: <?php $text = strip_tags($text); // теги нафиг $text = preg_replace('/\&\w+\;/', '', $text); // убираем html символы $text = preg_replace('/(\W|_|-)/', ' ', $text); // убираем всё кроме букв $text = preg_replace('/\s+/', ' ', $text); // заменяем пробелы $text = trim($text); // удаляем пробелы по бокам echo (substr_count($text, ' ') + 1); // +1 потому что пробелов всегда на один меньше, чем слов Шикарно?