Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 11 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
regex a diakritika

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25
Bydlisko: SK-Martin
Príspevok NapísalOffline : 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?


Offline

Správca fóra
Správca fóra
regex a diakritika

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 02.03.2010 11:01

http://www.pcforum.sk/post-vp496449.html#496449
http://www.pcforum.sk/preg-match-a-diak ... 83984.html







_________________
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
Offline

Užívateľ
Užívateľ
regex a diakritika

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25
Bydlisko: SK-Martin
Príspevok Napísal autor témyOffline : 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


Offline

Správca fóra
Správca fóra
regex a diakritika

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 02.03.2010 14:46

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
Offline

Užívateľ
Užívateľ
regex a diakritika

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25
Bydlisko: SK-Martin
Príspevok Napísal autor témyOffline : 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


Offline

Užívateľ
Užívateľ
regex a diakritika

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25
Bydlisko: SK-Martin
Príspevok Napísal autor témyOffline : 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


Offline

Čestný člen
Čestný člen
regex a diakritika

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 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?


Offline

Užívateľ
Užívateľ
regex a diakritika

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25
Bydlisko: SK-Martin
Príspevok Napísal autor témyOffline : 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ť?


Offline

Správca fóra
Správca fóra
regex a diakritika

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 07.03.2010 13:48

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
Offline

Užívateľ
Užívateľ
regex a diakritika

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25
Bydlisko: SK-Martin
Príspevok Napísal autor témyOffline : 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


Offline

Čestný člen
Čestný člen
regex a diakritika

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 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.


Odpovedať na tému [ Príspevkov: 11 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Regex ?

v PHP, ASP

0

370

12.07.2012 9:34

d0.0b Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. regex

v PHP, ASP

2

312

08.02.2015 23:24

esso82 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Regex replace

v Ostatné

5

381

02.07.2021 14:53

MTK Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. MySQL REGEX

v Databázy

2

368

20.06.2013 16:16

Punker661 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pomoc s regex-om

v PHP, ASP

1

239

13.04.2013 9:10

BX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Regex - iba cisla a desatinna bodka

v JavaScript, VBScript, Ajax

9

849

24.04.2019 10:28

neopagan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Diakritika

v Databázy

11

1098

30.08.2009 20:30

bmatias Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Diakritika

v Ostatné

8

796

22.10.2010 22:10

Rammstein Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. diakritika

v HTML, XHTML, XML, CSS

9

1120

18.08.2010 9:50

locksmith Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Diakritika

v Databázy

2

749

30.03.2009 22:22

22adamko Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Diakritika

v HTML, XHTML, XML, CSS

13

823

03.12.2008 14:12

exoomer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Diakritika

v HTML, XHTML, XML, CSS

6

931

25.04.2007 16:54

p360t Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. diakritika

v HTML, XHTML, XML, CSS

13

720

01.12.2010 14:18

coldak Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Diakritika

v Delphi, Visual Basic

1

762

05.05.2009 20:20

programator Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Diakritika

v Redakčné systémy

19

1468

06.05.2007 10:54

p360t Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Diakritika

v HTML, XHTML, XML, CSS

1

501

25.10.2009 20:58

don jebot Zobrazenie posledných príspevkov


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

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra