Re: help javaskript

From: Spock (spock@iol.cz)
Date: 28. 10. 1999, 02:35 CEST


>Schanim jestli existuje nejaka funkce na "regulerni prikaz" v javaskriptu?
>A kdyz jo tak nevim jak mam napsat "regulerni prikaz" co se da pouzit
>pro kontrolu spravne mapsane adresy pro email /spravne tecky a zavinac/.
>Muze mi nekdo kdo umi programovat poradit ? - ja se to ted ucim.
>Diky Ruprecht.

To je docela zajimava a konstruktivni otazka a Ruprecht se
zjevne uci premejslet a hledat elegantni reseni uz ve stadiu
prvnich krucku v jungli zdrojaku, compileru a interpretu.. :)))

Ty mas asi na mysli REGULARNI VYRAZY, ne? 'Regulerni
prikaz' znamena totiz jenom 'spravny nebo pripustny prikaz'
obecne. Takze regulArni VYRAZY. :)) JavaScript ma objekt
RegExp, prave pro praci s regularnimi vyrazy. Udelas si tedy
jeho novou instanci, treba  mRE. Object RegExp obsahuje
constructor, takze si pri inicializaci muzes hned nadefinovat
regularni vyraz:
-------
mRE = new RegExp( <reg_string> );
-------
kde  <reg_string>  je prave ten regularni vyraz neboli maska.
Chodi to v IE a NN. Opera (3.51-) to nezna, muzes to ovsem
velice snadno osetrit:
-------
if (!window.RegExp) {browser to nezna, nejak to obejdeme;}
-------
Pak muzes pouzit methodu test objectu mRE v nejake svoji
vlastni funkci. Jestlize bude  <mail_addr>  vyraz obsahujici
testovanou mail adresu, tak napriklad:
-------
if ( !mRE.test( <mail_addr> ))  {adrs je spatne - udelej neco;}
-------
Ja sam jsem si sveho casu udelal pro kontrolu mail-address
v Perlu masku, ktera je sice trochu divoka, ale zato uz mysli
(skoro :) na vsechno. Predpoklada uvnitr casti za zavinacem
aspon jednu tecku, tedy serv a top-level domenu. Pokud bys
potreboval uznavat i adresu ve tvaru  <nekdo@nekde> , pak
muzes misto sevkence  "{1}"  pouzit jeden otaznik "?" a je to.
Tady ti ji venuju. ;-))) Treba se bude hodit i nekomu jinemu...

"^[^@\.]([\.]?[^@\.]+)*@([^@\.]+[\.]{1}[^@\.]+)+$"

BTW: Kdyz 'se to ted ucis', doporucuju ti venovat regularnim
vyrazum zvysenou pozornost, i kdyz jejich logika muze lezt
trochu hur do palice. :)) Usetri ti to pak ale spoustu prace se
stavbu ruznejch krkolomnejch procedur na kontrolu stringu
nebo hledani textu. :) Krome toho treba v Perlu bys bez nich
asi nemel sanci na preziti... ;-)))
V pripade nejakych nejasnosti se klidne ozvi. :))

Bye, Spock.



This archive was generated by hypermail 2.1.2 : 03. 09. 2001, 22:21 CEST