YodaMedlem sedan nov. 2002291 inlägg Jag ska validera ifall ett fält innehåller ett telnr. Fältet måste vara ifyllt och det måste vara ett telnr, alltså tillåts bara siffror och - och /.
Så här långt har jag kommit, fast då tillåts ju inte tecknen - och /. Hur gör jag för att tillåta dessa också?
function confirmTelnr()
{
var tel=new String(document.interest.tel.value);
if(document.interest.tel.value=="")
{
alert("Var vänlig fyll i ditt telefonnummer.");
return false;
}
else if(isNaN(document.interest.tel.value))
{
alert("Fältet innehåller inte ett telefonnummer.");
return false;
}
return true;
}
ejickMedlem sedan mars 2001895 inlägg Ett tips är att bara skriva in telefonnummret med siffror och inte använda verken mellanslag, /, eller - eftersom folk har en vana att skriva sina nummer på olika sätt enligt: http://www.webforum.nu/showthread.php?s=&postid=578172
dectgapMedlem sedan sep. 20021 655 inlägg För att kontrollera strängar är reguljära uttryck ypperligga att använda.
Ett exempel på hur det kan se ut:
String.prototype.isValidPhoneNumber = function(){
return /^0\d{1,3}[-\/ ]?\d{5,7}$/.test(this);
}
var p = "012-3456789";
alert(p.isValidPhoneNumber());
Telefonnumret ska ha ett riktnummer som är 1-3 tecken långt, och som börjar på en nolla. Sedan ett skiljetecken (-, / eller blanksteg) om man vill, följt av själva numret på 5 till 7 siffror.
Jesper TMedlem sedan nov. 20017 144 inlägg Stackars männsikor ifrån Hallstahammar (0220), Gnesta (0158) och Trosa (0156) m.fl.
Riktnumret skall nog vara 2-4 enligt min mening. ;)
I Stockholmsområdet finns det även åttasiffriga telefonnummer. t.ex. mitt eget. :)
return /^0\d{2,4}[-\/ ]?\d{5,8}$/.test(this);
YodaMedlem sedan nov. 2002291 inlägg Aha, tack men hur får jag in koden i min lilla funktion? Och vad betyder allting i den? Jag är ingen hejare på js så jag är tacksam om ni vill förklara lite så jag får lära mig. =)
dectgapMedlem sedan sep. 20021 655 inlägg
Jesper T skrev:
Stackars männsikor ifrån Hallstahammar (0220), Gnesta (0158) och Trosa (0156) m.fl.
Riktnumret skall nog vara 2-4 enligt min mening. ;)
I Stockholmsområdet finns det även åttasiffriga telefonnummer. t.ex. mitt eget. :)
Fyrsiffriga riktnummer tilläts - det var bara jag som hade skrivit fel i den förklarande texten. Den första nollan var ju statisk.
Åttasiffriga telefonnummer var däremot något nytt för mig.
Yoda skrev:
Aha, tack men hur får jag in koden i min lilla funktion? Och vad betyder allting i den? Jag är ingen hejare på js så jag är tacksam om ni vill förklara lite så jag får lära mig. =)
Lägg in
String.prototype.isValidPhoneNumber = function(){
return /^0\d{1,3}[-\/ ]?\d{5,8}$/.test(this);
}
någonstans i din JavaScript-kod, så länge det är ovanför där du tänker göra telefonnummerkontrollen.
När du ska göra kontrollen använder du den nya isValidPhoneNumber()-metoden på strängen som innehåller telefonnumret.
T ex
if(!document.forms["theForm"].phoneNumber.value.isValidPhoneNumber())
alert("Felaktigt telefonnummer!");
else
// gör någonting annat.
Varför lägga ner så mycket jobb på en funktion som ändå folk kommer att skriva 0123-12345678 samt kommer att bli iriterade på när de hoppar överatt fylla i?