Någon som kan hjälpa mig med det. Jag vill kunna skriva de tecken som är tillåtna. Sen ska det kollas om det finns andra tecken än de som är skrivna. Jag kom så här långt men redde inte ut det.
function checkAllowedChar(str) {
var allowedchar = /[a-z\0-9\-\_]/gi;
var check = str.search(allowedchar);
return check;
}
if (checkAllowedChar(f.vdlkvld.value) == -1) {
alert("Du får bara skriva bokstäver (a-z), siffror och streck.");
f.vdlkvld.focus();
return false;
}
Jag antar att du bara menade att du vill kunna bestämma vilka tecken som får och inte får stoppas in i tex input fields?!?
Så...jag brukar göra så här...
{
var checka = /[a-z\å\ä\ö\!\"\#\¤\%\&\/\(\)\=\?\´\`\+\}\{\$\£\@\,\.\;\:\'\*\¨\^\~\s]/gi;
var kolla = document.FormName.InputFieldName.value.search(checka);
if(kolla != -1)
{
alert("Du får tex i detta fallet bara änvända siffror och inga bokstäver...så nu kan du vara ändra runt i variablen checka för att anpassa")
return false
}
}
Jag brukar lägga en onSubmit i bodyn som kollar av alla fält som jag har i ett formulär...men det där kan du ju också ändra på om du vill...
Jag vet inte riktigt vad du menade med "Sen ska det kollas om det finns andra tecken än de som är skrivna"...vill du att den ska räkna hur många tecken som finns i fältet eller *förvirrad*... Hmm...ja...om det är nåt så bara hojta!
Tilja.net script gissar jag. Men om någon nu skriver t.ex. § så går det igenom. Bättre är då att skriva vilka som är tillåtna.
John som sitter bredvid mig lyckades knåpa ihop det.
// Returnerar -1 om allt är ok, annars 0 och uppåt. (den plats där första felet påträffades)
function checkAllowedChar(str)
{
var allowedchar = /[^-\^_\^a-z\^A-Z\^0-9]/gi;
var check = str.search(allowedchar);
return check;
}
Funkar det där verkligen? Problemet är att du kollar om strängen innehåller rätt tecken (i.e. var som hellst, bara det finns ett så är det ok, även om du har ett antal andra tecken som är fel).
Vidare, växeln i efter regexpet står för Ignore case, d.v.s du behöver inte ange både A-Z och a-z. g som har utelämnat i mitt exempel står för globaly, och fyller ingen funktion här (det betyder att regexpet skall fortsätta att utföra sökningen även om uttrycket uppfyllts en gång).
function checkAllowedChar(str) {
var re = /[a-z]|[0-9]|\-|\_/i;
var res = 0;
for(n=0;n<str.length;n++){ if(str.substring(n,n+1).search(re)) res++ }
return (res>0) ? false:true;
}
if(checkAllowedChar('tjoohoo')){
// Det var ok.
} else {
// Det var fel.
}