Objektet RegExp()
|

|
Vi har ett formulär där besökaren skall skriva in sin
e-postadress. När detta är gjort vill vi kontrollera att e-postadressen
kan finnas. En e-postadress måste uppfylla följande villkor:
- Adressen måste innehålla minst ett tecken före @.
- Adressens första del får innehålla . och -, men inte tillsammans och
inte omedelbart före @.
- Det måste finnas ett men endast ett @.
- Det måste finnas minst ett tecken efter @.
- Adressens andra del får innehålla . och -, men inte tillsammans och
inte omedelbart efter @.
- Adressen måste sluta med en punkt följt av 2 eller tre tecken.
Här kan du testa kontrollen: |
Skriv in din e-postadress och tryck på Enter
|
Skriptet ser ut så här:
|
I HEAD:
<SCRIPT language="JavaScript1.2">
<!-- Göm
function kollaEpost(adress) {
if (!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(adress)) {
alert("Ej möjlig e-postadress");
return;
}
alert("Möjlig e-postadress");
}
// Sluta gömma -->
</SCRIPT>
I BODY:
<P>Skriv in din e-postadress och tryck på Enter
<FORM>
<INPUT type="text" onChange="kollaEpost(this.value);">
</FORM></P>
|
Här använder vi ett "reguljärt uttryck". Objektet
RegExp() kan utnyttjas tillsammans med en lång rad metoder för att
undersöka mönster i och förändra strängvärden.
Alla reguljära uttryck placeras inom snedstreck: / ... / se exemplet
ovan. Nedan listar jag en del av de specialtecken som kan användas för att
bygga upp mönster:
|
\d
\D
\s
\w
\W
\
|
Hittar siffror. Om
strängen innehåller "5 stycken" kommer /\d/ att hitta 5.
Hittar alla tecken utom tecken som anges av \d.
Hittar mellanslag.
Hittar alla bokstäver och siffror.
Hittar alla tecken utom tecken som anges av \w
Om vi vill att nedanstående tecken skall uppfattas som de står till
exempel att $ skall uppfattas som ett dollartecken placerar vi ett
bakåtriktat snedstreck före dollartecknet.
|
.
^
$
*
+
?
{n,m}
|
En punkt hittar alla
tecken utom ny rad.
Hittar tecken i början av strängen /^m/ hittar "min" men inte
"din".
Hittar tecken i slutet av strängen /g$/ hittar "mig" men inte
"min".
Hittar tecknet noll, en eller flera gånger /L*/ hittar "l" i
sil och "ll" i sill.
Hittar tecknet en eller flera gånger /L+/ hittar "l" i sil och
"ll" i sill.
Hittar tecknet en gång /L?/ hittar "l" i sil och sill.
Hittar mellan n och m av tecknet före till exempel /b{2,5}
|
Eftersom objektet RegExp() finns med i
JavaScript först från version 1.2, är det viktigt att ta med
versionsnumret i den inledande SCRIPT-taggen.
|

|
© SupportData.Net
|