BrimbaMedlem sedan dec. 19992 966 inlägg Nedan ser ni lite kod.
Jag undrar hur ni hade valt att optimera denna kod?
Som sagt vill jag kolla två olika fält, det ena får endast innehålla a-ö det andra får innehålla a-ö samt 0-9.
Måste man verkligen ha två funktioner för detta, eller har ni några tips om hur jag löser det på ett bättre sätt?
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">
function validate(field) {
var valid = "abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ"
var ok = "yes";
var temp;
for (var i=0; i<field.value.length; i++) {
temp = "" + field.value.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
if (ok == "no") {
alert("Ogiltligt tecken! endast a-ö samt A-Ö får förekomma i fältet.");
field.focus();
field.select();
}
}
function validatenum(field) {
var valid = "abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789"
var ok = "yes";
var temp;
for (var i=0; i<field.value.length; i++) {
temp = "" + field.value.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
if (ok == "no") {
alert("Ogiltligt tecken! endast a-ö, A-Ö samt 0-9 får förekomma i fältet.");
field.focus();
field.select();
}
}
</font>
Tack!
------------------
Mvh
Patrik
aka Brimba
fredrikMedlem sedan dec. 19991 082 inlägg Tjena, här kommer ett tips där du skickar med ett värde in i funktionen för att kolla om det ska vara bara bokstäver eller både bokstäver och siffror.
Funtionen använder sig av reguljära uttryck:
function validate(val,typ)
{
if (typ==0)
{reg = /\w|\s\w|\w\s|\s/
var msg="Du får endast ange tecken mellan A-Ö eller 0-9"}
else
{reg = /\D|\s\D|\D\s|\s/
var msg="Du får endast ange tecken mellan A-Ö"}
var reg_exp = new RegExp(reg)
var len=val.length;
var fel=false;
for (i=0;i<len;i++)
{
val_char=val.substring(i,i+1)
ch_reg = reg_exp.test(val_char)
if (ch_reg==false)
{fel=true}
}
if (fel==true)
{alert(msg)}
}
Du anropar funktionen genom att skicka in önskat värde, samt en nolla eller etta för vilken typ du ska använda.
onclick="validate(document.form.input.value,1)
------------------
Fredrik Klarqvist
fredrik.klarqvist@swipnet.se
http://server.webwerkstaden.se/fredde/
spangoMedlem sedan juni 20006 147 inlägg function validate(field) {
if (new RegExp("[a-z" + unescape("%E5%E4%F6") + "]+", "i").exec(field.value) != field.value) {
alert("Ogiltligt tecken! endast a-ö samt A-Ö får förekomma i fältet.");
field.focus();
field.select();
}
}
function validatenum(field) {
if(new RegExp("[a-z" + unescape("%E5%E4%F6") + "0-9]+", "i").exec(field.value) != field.value) {
alert("Ogiltligt tecken! endast a-ö, A-Ö samt 0-9 får förekomma i fältet.");
field.focus();
field.select();
}
}
r måste ha vart rejält trött när jag skrev den gamla koden...
------------------
-- spango
Internet ska vara kod, inte kul!
[Redigerat av spango den 11 okt 2000]
BrimbaMedlem sedan dec. 19992 966 inlägg Men du sätter allt till lowercase?
------------------
Mvh
Patrik aka Brimba
Brimbas lille ställe
spangoMedlem sedan juni 20006 147 inlägg Brimba, jag har omoptimerat koden nu.
------------------
-- spango
Internet ska vara kod, inte kul!
BrimbaMedlem sedan dec. 19992 966 inlägg Jag tycker inte att din kod gör att jag får mindre antal funktioner?
Jag behåller nog det jag skrev från början.
Tack!
------------------
Mvh
Patrik aka Brimba
Brimbas lille ställe
spangoMedlem sedan juni 20006 147 inlägg Jaså, det var färre funktioner du var ute efter...
function validate(field,description , extras) {
if(!extras) extras = "";
if(new RegExp("[a-z" + unescape("%E5%E4%F6") + extras + "]+", "i").exec(field.value) != field.value) {
alert("Ogiltligt tecken! Endast " + description + " får förekomma i fältet.");
field.focus();
field.select();
}
}
validate(ettFelt, "a-ö och A-Ö"); // visar "Ogiltligt tecken! Endast a-ö och A-Ö får förekomma i fältet." om nåt annat än a-ö förekommer i fältet
validate(ettFelt, "a-ö, A-Ö samt 0-9", "0-9"); // visar "Ogiltligt tecken! Endast a-ö, A-Ö samt 0-9 får förekomma i fältet." om nåt annat än a-ö eller 0-9 dyker upp i fältet
\r Unterminated string literal
------------------
-- spango
Internet ska vara kod, inte kul!
[Redigerat av spango den 13 okt 2000]