Avatar billede apo Praktikant
16. oktober 2005 - 15:58 Der er 5 kommentarer og
1 løsning

Input-validering via Reg.Exp

Hej :-)

Jeg vil reducere mine valideringssætninger, så meget som muligt, og gerne via Reg.Exp.

Hvordan validerer man inputs med emailadresse og tekst, via Reg.Exp?

Email (Input):
Felterne må ikke være tomme, skal indeholde 1 stk. '@', minimum 1 stk '.', minimum 2 bogstaver efter punktummet, og må ikke overskride flere end 60 tegn i alt (Og minimum 6 tegn i alt).

Tekst1 (Input):
Felterne må ikke være tomme, skal minimum indeholde 5 tegn i alt og maks 50 bogstaver i alt (Må ikke indeholde tal kun a-å og A-Å).

Tekst2 (Input):
Felterne må ikke være tomme, skal minimum indeholde 5 tegn i alt og maks 50 tegn i alt (både bogstaver a-å og A-Å, alle tegn og tal 0-9)

Tekst3 (Textarea):
Felterne må ikke være tomme, skal minimum indeholde 10 tegn i alt og maks 5000 tegn i alt (både bogstaver a-å og A-Å, alle tegn og tal 0-9)

Ingen af felterne må indeholde HTML-koder (Hvis det kan lade sig gøre).

Håber at der er en Reg.Exp-haj, der kan hjælpe :-)
Avatar billede apo Praktikant
16. oktober 2005 - 16:28 #1
... Dog må textareas gerne indeholde URLs.
Avatar billede horsmark Nybegynder
16. oktober 2005 - 16:51 #2
Check denne side:
http://privat.tdc.dk/internet/bredbaand/opgrader/bestil/

Sådan ser valideringslogikken ud frontend (er lidt tilrettet fra min side - vær opmærksom på at getEle er alias for document.getElementById ):

var returnVal = true
var returnString = ''

function verifyForm() {
returnVal = true
returnString = ''
if( getEle('bb_upgrade_byacount')[0].selected ) {
  returnVal = false
  returnString += "Du skal vælge om du vil udfylde kundenummer eller kontonummer.\n"
} else {
  //Validate by customer id
  if( getEle('bb_upgrade_byacount')[1].selected ) {
  if( !isNumber('bb_upgrade_install_cid',12)) {
    returnVal = false
    returnString += "Du skal indtaste et kundenummer på 12 cifre.\n"
  }
}

//Validate by account id
if( getEle('bb_upgrade_byacount')[2].selected ) {
  if( !isNumber('bb_upgrade_install_account_number', 9) ) {
  returnVal = false
  returnString += "Du skal indtaste et kontonummer på 9 cifre.\n"
  }
}
}
checkIfTelephoneNumber('bb_upgrade_install_number',    'Du mangler at indtaste fastnetnummer.','Du skal indtaste fastnetnummer som 8 tal uden mellemrum.')
checkIfEmail('bb_upgrade_install_email','Du mangler at indtaste email.', 'Du har ikke indtastet en korrekt email.');

if(getEle('bb_upgrade_speed_old')[0].selected || getEle('bb_upgrade_speed_new')[0].selected) {
  returnVal = false
  returnString += "Du skal vælge både nuværende og ønsket hastighed.\n"
} else if(getEle('bb_upgrade_speed_old').value == getEle('bb_upgrade_speed_new').value) {
  returnVal = false
  returnString += "Du skal vælge forskellige hastigheder i nuværende og ønsket hastighed.\n"
}

if (returnVal) {
  return true
} else {
  alert(returnString)
  return false
}
}

...og kunne kaldes sådan:
<form onsubmit="return verifyForm()">
...
</form>

selve valideringsfunktionerne såsom isNumber chechIfEmpty osv i regExp ligger her:
http://i.tdconline.dk/global/js/global.js
Avatar billede horsmark Nybegynder
16. oktober 2005 - 16:52 #3
Avatar billede apo Praktikant
16. oktober 2005 - 17:26 #4
Det skal være i ASP ;-)
Avatar billede apo Praktikant
16. oktober 2005 - 19:21 #5
Ingen Reg.Exp-hajer til stede i dag?
Avatar billede apo Praktikant
21. oktober 2005 - 17:48 #6
Nå, så må det være lukketid :-(
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester