| | |
| Stránka: 1 z 1
| [ Príspevkov: 11 ] | |
Autor | Správa |
---|
Registrovaný: 22.11.05 Prihlásený: 29.01.23 Príspevky: 712 Témy: 25 Bydlisko: SK-Martin | Napísal mokus: 02.03.2010 10:52 | |
|
po dlhšom čase som aj ja narazil na jeden problém s ktorým si neviem rady,
potrebujem pri registrácii kontrolu nepovolených znakov a na to som krátky,
používam kódovanie UTF-8
ide presne o toto:
v registrácii pre meno majú byť povolené len znaky [a-zA-Z] samozrejme s diakritikou a medzera a nič iné
potrebujem upraviť tento pôvodný zápis: Kód: if (!preg_match("/^[-0-9A-Z_@\s]+$/i", $name)) { $error .= "CHYBA meno obsahuje nepovolené znaky"; } skúsil som napríklad aj toto: Kód: mb_regex_encoding('UTF-8'); if (!mb_ereg("^[a-zA-Z\s]*", $name)) { $error .= "CHYBA meno obsahuje nepovolené znaky"; } tento zápis síce diakritiku zvládne, ale bohužiaľ prepustí aj ostatné znaky a celkom nelogicky aj čísla, ktoré ja tam nechcem. akonáhle ukončím reťazec: Kód: mb_regex_encoding('UTF-8'); if (!mb_ereg("^[a-zA-Z\s]*$", $name)) { $error .= "CHYBA meno obsahuje nepovolené znaky"; }
tak to funguje takmer správne ale tentoraz zase bez diakritiky
a podobné je to aj s preg_match
pozná niekto riešenie, ktoré by splnilo hore uvedené podmienky?
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 22.11.05 Prihlásený: 29.01.23 Príspevky: 712 Témy: 25 Bydlisko: SK-Martin | Napísal autor témy mokus: 02.03.2010 14:37 | |
|
stenley, ja som fórum prešiel, keby som tu našiel riešenia tak sem nepíšem, v uvedených odkazoch som nenašiel riešenie pre tento konkrétny môj prípad
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
co ti na tomto nefunguje?
Kód: /^[\pL ]{2,255}$/
ale mozno mas podobny problem ako rooobertek vo vyssie uvedenej teme...
Naposledy upravil stenley dňa 02.03.2010 14:57, celkovo upravené 1
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 22.11.05 Prihlásený: 29.01.23 Príspevky: 712 Témy: 25 Bydlisko: SK-Martin | Napísal autor témy mokus: 02.03.2010 14:57 | |
|
prepáč unáhlene som napísal odpoveď a ešte som robil pokusy
ďakujem za pomoc, tvoj príklad funguje, ale ešte predtým som úspešne vyskúšal(vďaka tvojim odkazom) tento zápis: Kód: if (!preg_match("/^[a-žA-Ž\s]*$/i", $username))
možno že sa jedná o to isté len inak zapísané, nie som v tomto taký zbehlý, tak si to ešte naštudujem
|
|
Registrovaný: 22.11.05 Prihlásený: 29.01.23 Príspevky: 712 Témy: 25 Bydlisko: SK-Martin | Napísal autor témy mokus: 02.03.2010 15:45 | |
|
takže mám nové výsledky:
tebou uvedený príklad fungoval na localhoste bezchybne, išla registrácia aj prihlásenie,
avšak na jednom ostrom webe sa už nedalo registrovať
oproti tomu mnou uvedený príklad mi fungoval v oboch prípadoch
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 02.03.2010 19:38 | |
|
Tebou uvedeny priklad myslim akceptuje vsetky znaky od 0x41 po 0x17E (ak sme v UTF-8). Skus otestovat napr. znak ~, prejde?
|
|
Registrovaný: 22.11.05 Prihlásený: 29.01.23 Príspevky: 712 Témy: 25 Bydlisko: SK-Martin | Napísal autor témy mokus: 07.03.2010 12:45 | |
|
tento znak prejde, napokon neskúšal som všetky existujúce znaky
a včom by mohol byť podľa teba problém, ak stenleyho príklad mi na ostrom webe nefungoval, diakritiku nepustil, kým na localhoste to išlo?
robím niekde chybu ja, alebo to môže byť aj nastavením serverov/php/...?
tak nájde sa tu ešte niekto, kto by mi vedel poradiť?
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
trosku krkolomne riesenie, ale skus najskor odstranit diakritiku z odoslanych dat a potom skontroluj, ci sa vo vyslednom retazci nachadzaju len "obycajne" pismena a medzera...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 22.11.05 Prihlásený: 29.01.23 Príspevky: 712 Témy: 25 Bydlisko: SK-Martin | Napísal autor témy mokus: 08.03.2010 19:58 | |
|
vďaka stenley,
napokon som použil tento zápis: Kód: if (!preg_match("/^[a-zA-Z|á|é|í|ý|ú|ä|ô|ľ|š|č|ť|ž|ň|ď|ě|ř|ů|Á|É|Í|Ý|Ú|Ľ|Š|Č|Ť|Ž|Ň|Ď|Ě|Ř|Ů|\s]*$/i", $name))
nie je to najkrajšie ale aspoň funguje
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 08.03.2010 20:05 | |
|
Tie pipy odtial vyhod.
Kód: preg_match("/^[a-zA-ZáéíýúäôľščťžňďěřůÁÉÍÝÚĽŠČŤŽŇĎĚŘŮ\s]*$/i", $name)
Takisto by sa to dalo este zjednoduchsit - pridaj modifikator u a staci ti vypisovat male pismena.
|
|
| Stránka: 1 z 1
| [ Príspevkov: 11 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Regex ? v PHP, ASP | 0 | 370 | 12.07.2012 9:34 d0.0b | | regex v PHP, ASP | 2 | 312 | 08.02.2015 23:24 esso82 | | Regex replace v Ostatné | 5 | 381 | 02.07.2021 14:53 MTK | | MySQL REGEX v Databázy | 2 | 368 | 20.06.2013 16:16 Punker661 | | Pomoc s regex-om v PHP, ASP | 1 | 239 | 13.04.2013 9:10 BX | | Regex - iba cisla a desatinna bodka v JavaScript, VBScript, Ajax | 9 | 849 | 24.04.2019 10:28 neopagan | | Diakritika v Databázy | 11 | 1098 | 30.08.2009 20:30 bmatias | | Diakritika v Ostatné | 8 | 796 | 22.10.2010 22:10 Rammstein | | diakritika v HTML, XHTML, XML, CSS | 9 | 1120 | 18.08.2010 9:50 locksmith | | Diakritika v Databázy | 2 | 749 | 30.03.2009 22:22 22adamko | | Diakritika v HTML, XHTML, XML, CSS | 13 | 823 | 03.12.2008 14:12 exoomer | | Diakritika v HTML, XHTML, XML, CSS | 6 | 931 | 25.04.2007 16:54 p360t | | diakritika v HTML, XHTML, XML, CSS | 13 | 720 | 01.12.2010 14:18 coldak | | Diakritika v Delphi, Visual Basic | 1 | 762 | 05.05.2009 20:20 programator | | Diakritika v Redakčné systémy | 19 | 1468 | 06.05.2007 10:54 p360t | | Diakritika v HTML, XHTML, XML, CSS | 1 | 501 | 25.10.2009 20:58 don jebot |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|