#javascript #jquery #regex #url #conditional-statements
#javascript #jquery #регулярное выражение #url #условные операторы
Вопрос:
У меня есть два регулярных выражения для одного поля ввода пользователя, которые должны принимать URL страницы контактов веб-сайта или адрес электронной почты. Как я могу написать это в Jquery или Javascript? Вот мои два регулярных выражения.
regex for URL "((www.|(http|https|ftp|news|file) ://)[amp;#95;.a-z0-9-] .[a-z0-9/amp;#95;:@=. ?,##%amp;~-]*[^.|'|# |!|(|?|,| |>|<|;|)])",
regex for email "^[w-.] @([w-] .) [w-]{2,4}$",
error messageelse "You must enter a valid email or you must enter a valid url, which starts with http://. The www prefix is optional.")
Комментарии:
1. Это регулярное выражение отклонит множество совершенно правильных адресов электронной почты.
Ответ №1:
Демонстрация — http://jsfiddle.net/A77fD /
Пример —
var url_regex = /((www.|(http|https|ftp|news|file) ://)[amp;#95;.a-z0-9-] .[a-z0-9/amp;#95;:@=. ?,##%amp;~-]*[^.|'|# |!|(|?|,| |>|<|;|)])/;
var email_regex = /^[w-.] @([w-] .) [w-]{2,4}$/
$('#test').click(function(){
console.log(url_regex.test($('#test_field').val()));
console.log(email_regex.test($('#test_field').val()));
if(!(url_regex.test($('#test_field').val()) || email_regex.test($('#test_field').val()))){
alert("You must enter a valid email or you must enter a valid url, which starts with http://. The www prefix is optional.")
}
})
Комментарии:
1. Пожалуйста, не заражайте мир еще одним специальным средством проверки электронной почты, которое принимает недопустимые адреса и отклоняет действительные.
2. Не проверял регулярные выражения. Просто ответил на то, что хотел пользователь. Но, конечно, он может улучшить регулярные выражения.
Ответ №2:
используйте regex.test(«url или email»)
var regexU = /((www.|(http|https|ftp|news|file) ://)[amp;#95;.a-z0-9-] .[a-z0-9/amp;#95;:@=. ?,##%amp;~-]*[^.|'|# |!|(|?|,| |>|<|;|)])/;
var regexEmail = /^[w-.] @([w-] .) [w-]{2,4}$/
function validate() {
if( regexUrl.test("url") || regexEmail.test("email")) {
console.log("valid");
} else {
console.log("You must enter a valid email or you must enter a valid url, which starts with http://. The www prefix is optional.");
}
}
Ответ №3:
Я бы рекомендовал использовать какую-нибудь библиотеку для выполнения ваших проверок. Не нужно каждый раз изобретать велосипед.
У jQuery есть плагин, который может подойти: http://rocketsquared.com/wiki/Plugins/Validation