Hej. googlade och klippte ett script bara... Vet inte om det är det bästa dock.. Kollen bör ske på både klientsidan och serversidan eftersom skriptexekvering på klientsidan kan vara inaktiverad av din besökare... och då kan du ju naturligtvis inte heller slänga upp en alert... ja, vilken skillnad att använda RegExp till vissa saker... :)Undvika olika tecken på ett formulär
Jag har ett signup formulär, och vill inte att medlemmar skall använda tecken som <>-:,@ osv...
Det skall komma upp en alert ruta om de gör det, hur gör jag?
Tacksam för svar.Sv: Undvika olika tecken på ett formulär
<code>
// Text Field Validation Functions
// copyright Stephen Chapman, 26th Dec 2004
// you may copy this function but please keep the copyright notice with it
function stripBlanks(fld) {
var result = "";
var c = 0;
for (i=0; i<fld.length; i++) {
if (fld.charAt(i) != " " || c > 0) {
result += fld.charAt(i);
if (fld.charAt(i) != " ") c = result.length;
}
}
return result.substr(0,c);
}
var numb = '0123456789';
var lwr = 'abcdefghijklmnopqrstuvwxyz';
var upr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
function isValid(parm,val) {
if (parm == "") return true;
for (i=0; i<parm.length; i++) {
if (val.indexOf(parm.charAt(i),0) == -1) return false;
}
return true;
}
function isNum(parm) {return isValid(parm,numb);}
function isLower(parm) {return isValid(parm,lwr);}
function isUpper(parm) {return isValid(parm,upr);}
function isAlpha(parm) {return isValid(parm,lwr+upr);}
function isAlphanum(parm) {return isValid(parm,lwr+upr+numb);}
function isDecimal(parm) {return isValid(parm,numb+'.');}
function oneOnly(parm,chr,must) {
var atPos = parm.indexOf(chr,0);
if (atPos == -1) {return !must;}
if (parm.indexOf(chr, atPos + 1) > - 1) {return false;}
return true; }
function adjacent(parm,chrs) {
return(parm.indexOf(chrs,0) != -1);
}
function onlyAdjacent(parm,comb,chrs) {
var a = parm.split(comb);
var b = a.join('');
for (i=0; i<parm.length; i++) {
if (val.indexOf(parm.charAt(i),0) != -1) return false;
}
return true; }
function setOrder(parm,first,second) {
var pos1 = parmField.indexOf(first,0);
if (pos1 == -1) return false; // first char not found
var pos2 = parmField.indexOf(second,pos1+1);
if (pos2 == -1) return false; // second char doesn't follow first
return true; }
function setDistance(parm,first,last,min,max) {
var pos1 = first == '' ? 0 :
parmField.indexOf(first,0);
var pos2 = last == '' ? parmField.length - pos1 - 1 :
parmField.indexOf(second,pos1+1);
if (pos1 == -1) return false;
if (pos2 < min || pos2 > max) return false;
return true; }
function endOption(fld,val) {
return fld.substring(fld.lastIndexOf(val)) == val;
}
</code>Sv: Undvika olika tecken på ett formulär
Hur som helst, så här kan man göra på klientsidan:
<code>
<script type="text/javascript">
<!--
function chkForm(f) {
var filter = /(Reguljärt uttryck med tillåtna tecken)/;
if (!filter.test(f.myField.value)) {
alert('Angivet värde verkar inte vara korrekt!');
f.myField.focus();
f.myField.select();
return false;
}
return true;
}
-->
</script>
<form ... onsubmit="return chkForm(this);">
<input type="text" name="myField" />
</form>
</code>
Hur du gör på serversidan beror förståss på språk...Sv:Undvika olika tecken på ett formulär