Как использовать JavaScript regex для проверки на “пустые” поля формы?

Я работаю над php+javascript базирующийся проект и уже составил страницу макета в: мой веб-сайт

Я знал, как использовать JavaScript или php, чтобы проверить, "пусто" ли конкретное поле формы или нет, то есть, содержит ли это алфавитно-цифровые символы кроме пробельных символов (например, пространство, вкладка и новая строка).

Однако мой нормальный подход больше не работает, так как плагин jQuery, который я использую теперь, полагается на regex для проверки полей.

Если Вы переходите к третьей вкладке (3. Заполните информацию о поставке и Осуществите Платеж), можно ввести что-то в поле Firstname, и это делает проверку автоматически. Прекрасный. Однако, если Вы просто помещаете некоторые пробелы там и переход к следующему полю, ну, в общем, это все еще чувствует хорошо, для который, который не корректен, так как ничье имя - ничто!

Проблема? Сзади это имеет regex как это:

"noSpecialCaracters":{
                    "regex":"/^[0-9a-zA-Z ]+$/",
                    "alertText":"* No special caracters allowed"},

Это не отфильтровало бы пустые символы.

Я искал онлайн и старался изо всех сил составлять другой regex для соответствия, я попробовал

"regex":"/^[^]+$/"

для соответствия непустым символам, но это не сделает...

Кто-либо может выручить меня? Большое спасибо заранее!

12
задан Michael Mao 12 February 2010 в 03:14
поделиться

4 ответа

Попробовать это для непробельных символов:

([^\s]*)

Пример:

/([^\s])/.test("   A"); //TRUE
/([^\s])/.test("    "); //FALSE
14
ответ дан 2 December 2019 в 05:54
поделиться

Чтобы ответить на ваш вопрос, минимальный regex - /\S/, который будет соответствовать, пока есть хотя бы один не пробельный символ.

Однако вы, вероятно, не хотите, чтобы кто-то ввел имя '12345' или '!!!', поэтому лучше использовать /[a-z]/i, поскольку этот регекс будет соответствовать только при наличии хотя бы одного алфавитного символа.

1
ответ дан 2 December 2019 в 05:54
поделиться
/^\s*[0-9a-zA-Z][0-9a-zA-Z ]*$/

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

Вы также можете рассмотреть другие символы, такие как дефис(-) или апостроф('), которые также могут встречаться в именах...

/^\s*[0-9a-zA-Z][0-9a-zA-Z '-]*$/
0
ответ дан 2 December 2019 в 05:54
поделиться

Вы можете попробовать обернуть свое выражение следующим образом ^ \ s * (выражение) \ s * $ . Затем используйте группы, чтобы найти «обрезанные» совпадения. Это устраняет только конечные или ведущие пробелы.

Вы можете заставить пользователя ввести обрезанный текст или изящно принять необрезанный ввод (лучше), поскольку я обнаружил, что копирование и вставка текста часто оставляет некоторые конечные или ведущие пробелы, о которых пользователь может не знать.

0
ответ дан 2 December 2019 в 05:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: