-1
Good morning guys, I just need a little help improving a javascript field validation. In my form there is a field called website and I need to have a url validation (I already did) and I need to have a block of some words not allowed in this field. For example: Google, Facebook, etc.
My code is like this:
function validateForm() {
var url = document.forms["registration"]["website"].value;
var pattern = /^(?:(?:https?|ftp):\/\/)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?$/;
var re = /facebook|Facebook|Google|google|linkedin|youtube|semsite|não|nosite|naotem|naotenho|asd|kkk|qqq|fff|aaa|ccc|ppp|haha|hehe/;
var result = url.match(re);
if (result == "facebook") {
alert("Essa palavra não é permitida no campo site");
event.preventDefault();
return false;
}
if (result == "Facebook") {
alert("Essa palavra não é permitida no campo site");
event.preventDefault();
return false;
}
if (result == "google") {
alert("Essa palavra não é permitida no campo site");
return false;
}
if (result == "Google") {
alert("Essa palavra não é permitida no campo site");
return false;
}
if (result == "linkedin") {
alert("Essa palavra não é permitida no campo site");
return false;
}
if (result == "linkedin") {
alert("Essa palavra não é permitida no campo site");
return false;
}
if (result == "youtube") {
alert("Essa palavra não é permitida no campo site");
return false;
}
if (result == "semsite") {
alert("Essa palavra não é permitida no campo site");
return false;
}
if (result == "não") {
alert("Essa palavra não é permitida no campo site");
return false;
}
if (result == "nosite") {
alert("Essa palavra não é permitida no campo site");
return false;
}
if (result == "naotem") {
alert("Essa palavra não é permitida no campo site");
return false;
}
if (result == "naotenho") {
alert("Essa palavra não é permitida no campo site");
return false;
}
if (result == "asd") {
alert("Essa palavra não é permitida no campo site");
return false;
}
if (result == "kkk") {
alert("Essa palavra não é permitida no campo site");
return false;
}
if (result == "qqq") {
alert("Essa palavra não é permitida no campo site");
return false;
}
if (result == "fff") {
alert("Essa palavra não é permitida no campo site");
return false;
}
if (result == "aaa") {
alert("Essa palavra não é permitida no campo site");
return false;
}
if (result == "ccc") {
alert("Essa palavra não é permitida no campo site");
return false;
}
if (result == "ppp") {
alert("Essa palavra não é permitida no campo site");
return false;
}
if (result == "haha") {
alert("Essa palavra não é permitida no campo site");
return false;
}
if (result == "hehe") {
alert("Essa palavra não é permitida no campo site");
return false;
}
if (pattern.test(url)) {
return true;
} else {
alert("A URL não é valida");
return false;
}
}
But note that this is not such a correct practice to do, because every time I need to add a new word I will need to create another validation there. Someone would have a suggestion to help improve it?
Thank you.
all messages are the same, why use so many
if
? could not use a single if asif(result != undefined && result != '')
?– Ricardo Pontual
This is my idea, take these both of if and seek a simple solution so that whenever you need to put a new word do not need to put more if you understand. I’ll try it the way you said. @Ricardopunctual
– Saulo
@Ricardopunctual the way you passed doesn’t work. It’s not blocking the word I need.
– Saulo
can test by changing the if to
if(result != null)
?– Ricardo Pontual