Regular Expressions
Skrifað af Birkir Rafn Guðjónsson þann 16. desember 2007 - 17:35
Fjöldi lestra: 1803Regular expressions er notað í mörgum forritunartungumálum svo sem ASP, PHP +(Pearl), Pear, C++ og fleirra.
Þessir demo RE geta validate-að kennitölu, email, iptölu og mánuði.
Demo:
http://benzincrew.com/php/
Þessir demo RE geta validate-að kennitölu, email, iptölu og mánuði.
Demo:
http://benzincrew.com/php/
1 | | |
Það er ekki nóg að athuga lengd kennitölu, það þarf líka að framkvæma vartölucheck á kennitölunni til þess að vera 100% viss um að hér sé um kennitölu að ræða. ;P
Validate-ar email regexið email með mörgum punktum ?
Stytti IP regexið aðeins
Validate-ar email regexið email með mörgum punktum ?
$string = "tomas.arnason@mac.com";
if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$string))
{
echo "Email gilt";
}
Stytti IP regexið aðeins
$string = "255.255.255.0";
if (preg_match('^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$',$string))
{
\t echo "IP er gild";
}
22. janúar 2008 - 09:34
#2 - Kristinn
#2 - Kristinn
Ég prófaði kennitölu validate-inn og það fóru 10% af kennitölunum af skrá. Samt fullkomlega löglegar. Hér er hann aðeins breyttur, en hann á að virka.
Leiðréttið mig ef hann er vitlaus :)
$finna = '/^[0-3]+[0-9]+[0-9]+[0-9]+[0-9]{2}-?+[0-9]{4}$/i';
Leiðréttið mig ef hann er vitlaus :)
Einnig er hægt að nota filter_var() fallið fyrir IP tölur og netföng.
Kennitölur ætti að fara í gegnum vartöluprófun og ég mæli ekki með því að nota regex í verkið. Enginn kóðanna sem eru hérna gera ráð fyrir kennitölum fyrirtækja. Einnig eru mánuðir eins og 18 fullgildir skv. þessu regexi sem þið settuð hingað. Regex væri samt hægt að nota til að staðfesta að eingöngu séu um tölur að ræða og af ákveðinni lengd. t.d. með [\d]{6}[-]?[\d]{4} eða [\d]{10} ef bandstrik eru ekki leyfð (ekki prófað).
Fyrir mánuði mæli ég alls ekki með regex. Þótt textinn taki minna pláss í kóðanum er hér á ferðinni óþarfa vinnsla. Ef ætlunin er að taka við inntaki frá notendum er betra að þeir slái inn tölur eða hreinlega velji mánuðina sem skilast síðan inn sem tölur.
Kennitölur ætti að fara í gegnum vartöluprófun og ég mæli ekki með því að nota regex í verkið. Enginn kóðanna sem eru hérna gera ráð fyrir kennitölum fyrirtækja. Einnig eru mánuðir eins og 18 fullgildir skv. þessu regexi sem þið settuð hingað. Regex væri samt hægt að nota til að staðfesta að eingöngu séu um tölur að ræða og af ákveðinni lengd. t.d. með [\d]{6}[-]?[\d]{4} eða [\d]{10} ef bandstrik eru ekki leyfð (ekki prófað).
Fyrir mánuði mæli ég alls ekki með regex. Þótt textinn taki minna pláss í kóðanum er hér á ferðinni óþarfa vinnsla. Ef ætlunin er að taka við inntaki frá notendum er betra að þeir slái inn tölur eða hreinlega velji mánuðina sem skilast síðan inn sem tölur.
E-mail req-exp gerir ekki ráð fyrir undirstriki, striki eða punkti.
Hefur einhver náð að gera kennitölu regex fyrir javascript?
Mér er þvi miður ekki að takast það vel sjálfur. Hef ekki ennþá tekist að skilja regex nægilega vel.
Mér er þvi miður ekki að takast það vel sjálfur. Hef ekki ennþá tekist að skilja regex nægilega vel.
Hvað með bara...
function valid_kt (val){
var pattern = /^[0-9]{6}\-?[0-9]{3}\9$/;
return val.match(pattern);
}
function valid_kt (val){
var pattern = /^[0-9]{6}\-?[0-9]{3}\9$/;
return val.match(pattern);
}


6 athugasemdir skrifaðar -