ConnyFoxMedlem sedan aug. 20011 087 inlägg jag har frågat långt ner i en tidigare tråd flera gånger men ingen har svarat, antar ingen orkade scrolla ner för det e ju inga svåra grejjer.
Detta är mina nuvarande kod
function validate(obj){
return (
Boolean(obj.elements["email"].value.indexOf('@') != -1 || alert("Ej giltlig Epost-adress")) &&
Boolean(/^\d+$/.test(obj.elements["postnr"].value) || alert("Endast siffror")) &&
Boolean(new personnummer(obj.elements["personnr"].value).valid || alert("Ej giltigt personnummer")) &&
Boolean(obj.elements["fornamn"].value != "" || alert("Inget förnamn ifyllt!")) &&
Boolean(obj.elements["efternamn"].value != "" || alert("Inget efternamn ifyllt!")) &&
Boolean(
(/\d{2,4}(\s|-|\\)?(\d\s*){5,8}/.test(obj.elements["hemtele"].value) ||
/\d{3}(\s|-|\\)?(\d\s*){7}/.test(obj.elements["mobtele"].value)) ||
alert("Vänligen ange åtminstone ett giltigt telefonnummer"))
);
}
jag skulle vilja ha några tillägg.
*Bättre emailkontroll, bara kolla så den innehåller @ e ju inte så bra.
*Kontroll så att två fält är identiska (lösenord, lösenord igen)
*Kontrollera så att ett fält innehåller minst 5 tecken och max 500 tecken.
tack på förhand, jag vet att detta inte är några problem för er o lösa ;)
Peter SMedlem sedan dec. 20025 483 inlägg /*
* isValidEmail() är hämtad från [url]www.jojoxx.net[/url]. Låt stå!
*/
String.prototype.isValidEmail = function(){
return !!this.match(/^([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})@([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})\.([a-zA-Z]{2,4})$/)
}
function validate(obj){
return (
Boolean(obj.elements["email"].value.isValidEmail() || alert("Ej giltlig Epost-adress")) &&
Boolean(/^\d+$/.test(obj.elements["postnr"].value) || alert("Endast siffror")) &&
Boolean(new personnummer(obj.elements["personnr"].value).valid || alert("Ej giltigt personnummer")) &&
Boolean(obj.elements["fornamn"].value != "" || alert("Inget förnamn ifyllt!")) &&
Boolean(obj.elements["efternamn"].value != "" || alert("Inget efternamn ifyllt!")) &&
Boolean(
(/\d{2,4}(\s|-|\\)?(\d\s*){5,8}/.test(obj.elements["hemtele"].value) ||
/\d{3}(\s|-|\\)?(\d\s*){7}/.test(obj.elements["mobtele"].value)) ||
alert("Vänligen ange åtminstone ett giltigt telefonnummer")) &&
Boolean((obj.elements["[b]passw[/b]"].value == obj.elements["[b]passw2[/b]"].value) || alert("Lösenorden överensstämmer ej!")) &&
Boolean((obj.elements["[b]fältets_namn[/b]"].value.length >= 5 && obj.elements["[b]fältets_namn[/b]"].value.length <= 500) || alert("5 <= Fältets längd <= 500"))
);
}
Glöm inte att använda funktionen acceptera som slutgiltigt svar när problemet är löst.
ConnyFoxMedlem sedan aug. 20011 087 inlägg Funkade tyvärr inte helt bra..
ska det vara nödvändigt med alla Boolean?
ConnyFoxMedlem sedan aug. 20011 087 inlägg Hmm ok det där fungerade inte så bra, använder denna koden nu och funktionen dom saker som Ej fungerar är :
*Kolla så antingen hemtele eller mobtele är ifyllt.
*minst 5 tecken max 50
<script type="text/javascript">
// Object 'personnummer' by member Jojoxx ([url]www.jojoxx.net[/url]) at webForum.nu
function personnummer(nr){
this.valid=false;
if(!nr.match(/^(\d{2})(\d{2})(\d{2})\-(\d{4})$/)){ return false; }
this.now=new Date(); this.nowFullYear=this.now.getFullYear()+""; this.nowCentury=this.nowFullYear.substring(0,2); this.nowShortYear=this.nowFullYear.substring(2,4);
this.year=RegExp.$1; this.month=RegExp.$2; this.day=RegExp.$3; this.controldigits=RegExp.$4;
this.fullYear=(this.year*1<=this.nowShortYear*1)?(this.nowCentury+this.year)*1:((this.nowCentury*1-1)+this.year)*1;
var months = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
if(this.fullYear%400==0||this.fullYear%4==0&&this.fullYear%100!=0){ months[1]=29; }
if(this.month*1>12||this.day*1>months[this.month*1-1]){ return false; }
this.alldigits=this.year+this.month+this.day+this.controldigits;
var nn="";
for(var n=0;n<this.alldigits.length;n++){ nn+=((((n+1)%2)+1)*this.alldigits.substring(n,n+1)); }
this.checksum=0;
for(var n=0;n<nn.length;n++){ this.checksum+=nn.substring(n,n+1)*1; }
this.valid=(this.checksum%10==0)?true:false;
this.sex=parseInt(this.controldigits.substring(2,3))%2;
}
/*
* isValidEmail() är hämtad från [url]www.jojoxx.net.[/url] Låt stå!
*/
String.prototype.isValidEmail = function(){
return !!this.match(/^([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})@([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})\.([a-zA-Z]{2,4})$/)
}
function validate(obj){
return (
Boolean(obj.elements["email"].value.isValidEmail() || alert("Ej giltlig Epost-adress")) &&
Boolean(/^\d+$/.test(obj.elements["postnr"].value) || alert("Postnummret skall endast innehålla siffror")) &&
Boolean(new personnummer(obj.elements["personnr"].value).valid || alert("Ej giltigt personnummer")) &&
Boolean(obj.elements["fornamn"].value != "" || alert("Inget förnamn ifyllt!")) &&
Boolean(obj.elements["efternamn"].value != "" || alert("Inget efternamn ifyllt!")) &&
Boolean(obj.elements["adress"].value != "" || alert("Ingen adress ifyllt!")) &&
Boolean(obj.elements["ort"].value != "" || alert("Ingen ort ifyllt!")) &&
Boolean((obj.elements["password"].value == obj.elements["password2"].value) || alert("Lösenorden överensstämmer ej!")) &&
[B]
Boolean((obj.elements["Username"].value.length >= 5 && obj.elements["username"].value.length <= 50) || alert("Fältet Användarnamn måste innehålla minst 5 tecken.")) &&
Boolean((obj.elements["password"].value.length >= 5 && obj.elements["password"].value.length <= 50) || alert("Fältet lösenord måste innehålla minst 5 tecken.")) &&
Boolean(
(/\d{2,4}(\s|-|\\)?(\d\s*){5,8}/.test(obj.elements["hemtele"].value) ||
/\d{3}(\s|-|\\)?(\d\s*){7}/.test(obj.elements["mobtele"].value)) ||
alert("Vänligen ange åtminstone ett giltigt telefonnummer"))[/B]
);
}
</script>
Peter SMedlem sedan dec. 20025 483 inlägg På ett ställe har du skrivit "Username" och på ett annat "username".
ConnyFoxMedlem sedan aug. 20011 087 inlägg ja jo men sabbar det alla 3 kontroller verkligen? ;)
Peter SMedlem sedan dec. 20025 483 inlägg You tell me:
<script type="text/javascript">
// Object 'personnummer' by member Jojoxx ([url]www.jojoxx.net[/url]) at webForum.nu
function personnummer(nr){
this.valid=false;
if(!nr.match(/^(\d{2})(\d{2})(\d{2})\-(\d{4})$/)){ return false; }
this.now=new Date(); this.nowFullYear=this.now.getFullYear()+""; this.nowCentury=this.nowFullYear.substring(0,2); this.nowShortYear=this.nowFullYear.substring(2,4);
this.year=RegExp.$1; this.month=RegExp.$2; this.day=RegExp.$3; this.controldigits=RegExp.$4;
this.fullYear=(this.year*1<=this.nowShortYear*1)?(this.nowCentury+this.year)*1:((this.nowCentury*1-1)+this.year)*1;
var months = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
if(this.fullYear%400==0||this.fullYear%4==0&&this.fullYear%100!=0){ months[1]=29; }
if(this.month*1>12||this.day*1>months[this.month*1-1]){ return false; }
this.alldigits=this.year+this.month+this.day+this.controldigits;
var nn="";
for(var n=0;n<this.alldigits.length;n++){ nn+=((((n+1)%2)+1)*this.alldigits.substring(n,n+1)); }
this.checksum=0;
for(var n=0;n<nn.length;n++){ this.checksum+=nn.substring(n,n+1)*1; }
this.valid=(this.checksum%10==0)?true:false;
this.sex=parseInt(this.controldigits.substring(2,3))%2;
}
/*
* isValidEmail() är hämtad från [url]www.jojoxx.net[/url]. Låt stå!
*/
String.prototype.isValidEmail = function(){
return !!this.match(/^([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})@([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})\.([a-zA-Z]{2,4})$/)
}
function validate(obj){
return (
Boolean(obj.elements["email"].value.isValidEmail() || alert("Ej giltlig Epost-adress")) &&
Boolean(/^\d+$/.test(obj.elements["postnr"].value) || alert("Postnummret skall endast innehålla siffror")) &&
Boolean(new personnummer(obj.elements["personnr"].value).valid || alert("Ej giltigt personnummer")) &&
Boolean(obj.elements["fornamn"].value != "" || alert("Inget förnamn ifyllt!")) &&
Boolean(obj.elements["efternamn"].value != "" || alert("Inget efternamn ifyllt!")) &&
Boolean(obj.elements["adress"].value != "" || alert("Ingen adress ifyllt!")) &&
Boolean(obj.elements["ort"].value != "" || alert("Ingen ort ifyllt!")) &&
Boolean((obj.elements["password"].value == obj.elements["password2"].value) || alert("Lösenorden överensstämmer ej!")) &&
Boolean((obj.elements["username"].value.length >= 5 && obj.elements["username"].value.length <= 50) || alert("Fältet Användarnamn måste innehålla minst 5 tecken.")) &&
Boolean((obj.elements["password"].value.length >= 5 && obj.elements["password"].value.length <= 50) || alert("Fältet lösenord måste innehålla minst 5 tecken.")) &&
Boolean(
(/\d{2,4}(\s|-|\\)?(\d\s*){5,8}/.test(obj.elements["hemtele"].value) ||
/\d{3}(\s|-|\\)?(\d\s*){7}/.test(obj.elements["mobtele"].value)) ||
alert("Vänligen ange åtminstone ett giltigt telefonnummer"))
);
}
</script>
<form onsubmit="return validate(this)">
email <input name="email"><br>
postnr <input name="postnr"><br>
personnr <input name="personnr"><br>
fornamn <input name="fornamn"><br>
efternamn <input name="efternamn"><br>
adress <input name="adress"><br>
ort <input name="ort"><br>
password <input name="password"><br>
password2 <input name="password2"><br>
usernamn <input name="username"><br>
hemtele <input name="hemtele"><br>
mobtele <input name="mobtele"><br>
<input type="submit">
</form>
ConnyFoxMedlem sedan aug. 20011 087 inlägg Ok får tacka det där funkade skitbra MEN jag behöver även en som kontrolerar att det inte innehåller något av följande tecken
/\:*?"<>|
det är dom man inte får ha i filnamn i windows, ska ladda upp en bild o döpa nämligen.
Peter SMedlem sedan dec. 20025 483 inlägg Glöm inte att använda funktionen acceptera som slutgiltigt svar när du är nöjd med svaret.
function validate(obj){
return (
Boolean(obj.elements["email"].value.isValidEmail() || alert("Ej giltlig Epost-adress")) &&
Boolean(/^\d+$/.test(obj.elements["postnr"].value) || alert("Postnummret skall endast innehålla siffror")) &&
Boolean(new personnummer(obj.elements["personnr"].value).valid || alert("Ej giltigt personnummer")) &&
Boolean(obj.elements["fornamn"].value != "" || alert("Inget förnamn ifyllt!")) &&
Boolean(obj.elements["efternamn"].value != "" || alert("Inget efternamn ifyllt!")) &&
Boolean(obj.elements["adress"].value != "" || alert("Ingen adress ifyllt!")) &&
Boolean(obj.elements["ort"].value != "" || alert("Ingen ort ifyllt!")) &&
Boolean((obj.elements["password"].value == obj.elements["password2"].value) || alert("Lösenorden överensstämmer ej!")) &&
Boolean((obj.elements["username"].value.length >= 5 && obj.elements["username"].value.length <= 50) || alert("Fältet Användarnamn måste innehålla minst 5 tecken.")) &&
Boolean((obj.elements["password"].value.length >= 5 && obj.elements["password"].value.length <= 50) || alert("Fältet lösenord måste innehålla minst 5 tecken.")) &&
[b]Boolean(/[\/\\:\*\?"<>\|]/.test(obj.elements["[i]namn_på_fält[/i]"].value) && alert("Får ej innehålla /\:*?"<>|")) && [/b]
Boolean(
(/\d{2,4}(\s|-|\\)?(\d\s*){5,8}/.test(obj.elements["hemtele"].value) ||
/\d{3}(\s|-|\\)?(\d\s*){7}/.test(obj.elements["mobtele"].value)) ||
alert("Vänligen ange åtminstone ett giltigt telefonnummer"))
);
}
ConnyFoxMedlem sedan aug. 20011 087 inlägg jag får det faktiskt inte att funka.. kör med denna koden och den reagerar inte alls.
<script type="text/javascript">
function validate(obj){
return (
Boolean(/[\/\\:\*\?"<>\|]/.test(obj.elements["artikelnr"].value) && alert("ArtikelNR får ej innehålla /\:*?"<>|"))
);
}
</script>
Peter SMedlem sedan dec. 20025 483 inlägg Jag glömde escape:a citationstecknet i alert():
alert("ArtikelNR får ej innehålla /\:*?\"<>|")
ConnyFoxMedlem sedan aug. 20011 087 inlägg Funkar delvis, den reagerar nu om man skrivit ett felaktigt tecken men har man inte det så skickas inte formuläret iväg :(
Peter SMedlem sedan dec. 20025 483 inlägg function validate(obj){
return (
Boolean(obj.elements["email"].value.isValidEmail() || alert("Ej giltlig Epost-adress")) &&
Boolean(/^\d+$/.test(obj.elements["postnr"].value) || alert("Postnummret skall endast innehålla siffror")) &&
Boolean(new personnummer(obj.elements["personnr"].value).valid || alert("Ej giltigt personnummer")) &&
Boolean(obj.elements["fornamn"].value != "" || alert("Inget förnamn ifyllt!")) &&
Boolean(obj.elements["efternamn"].value != "" || alert("Inget efternamn ifyllt!")) &&
Boolean(obj.elements["adress"].value != "" || alert("Ingen adress ifyllt!")) &&
Boolean(obj.elements["ort"].value != "" || alert("Ingen ort ifyllt!")) &&
Boolean((obj.elements["password"].value == obj.elements["password2"].value) || alert("Lösenorden överensstämmer ej!")) &&
Boolean((obj.elements["username"].value.length >= 5 && obj.elements["username"].value.length <= 50) || alert("Fältet Användarnamn måste innehålla minst 5 tecken.")) &&
Boolean((obj.elements["password"].value.length >= 5 && obj.elements["password"].value.length <= 50) || alert("Fältet lösenord måste innehålla minst 5 tecken.")) &&
Boolean(!/[\/\\:\*\?"<>\|]|$.{0}^/.test(obj.elements["artikelnr"].value) || alert("Artikelnumret får ej vara tomt eller innehålla /\:*?\"<>|")) &&
Boolean(
(/\d{2,4}(\s|-|\\)?(\d\s*){5,8}/.test(obj.elements["hemtele"].value) ||
/\d{3}(\s|-|\\)?(\d\s*){7}/.test(obj.elements["mobtele"].value)) ||
alert("Vänligen ange åtminstone ett giltigt telefonnummer"))
);
}