[ Príspevkov: 11 ] 
AutorSpráva
Offline

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

Registrovaný: 22.11.05
Prihlásený: 12.03.17
Príspevky: 708
Témy: 20 | 20
Bydlisko: SK-Martin
Vek: 62
NapísalOffline : 02.03.2010 10:52 | regex a diakritika

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: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 02.03.2010 11:01 | regex a diakritika

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


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

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

Registrovaný: 22.11.05
Prihlásený: 12.03.17
Príspevky: 708
Témy: 20 | 20
Bydlisko: SK-Martin
Vek: 62
Napísal autor témyOffline : 02.03.2010 14:37 | regex a diakritika

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: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 02.03.2010 14:46 | regex a diakritika

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

_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

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

Registrovaný: 22.11.05
Prihlásený: 12.03.17
Príspevky: 708
Témy: 20 | 20
Bydlisko: SK-Martin
Vek: 62
Napísal autor témyOffline : 02.03.2010 14:57 | regex a diakritika

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ý: 12.03.17
Príspevky: 708
Témy: 20 | 20
Bydlisko: SK-Martin
Vek: 62
Napísal autor témyOffline : 02.03.2010 15:45 | regex a diakritika

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: 4110
Témy: 30 | 30
Bydlisko: Brno
NapísalOffline : 02.03.2010 19:38 | regex a diakritika

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ý: 12.03.17
Príspevky: 708
Témy: 20 | 20
Bydlisko: SK-Martin
Vek: 62
Napísal autor témyOffline : 07.03.2010 12:45 | regex a diakritika

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: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 07.03.2010 13:48 | regex a diakritika

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...


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

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

Registrovaný: 22.11.05
Prihlásený: 12.03.17
Príspevky: 708
Témy: 20 | 20
Bydlisko: SK-Martin
Vek: 62
Napísal autor témyOffline : 08.03.2010 19:58 | regex a diakritika

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: 4110
Témy: 30 | 30
Bydlisko: Brno
NapísalOffline : 08.03.2010 20:05 | regex a diakritika

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.


 [ Príspevkov: 11 ] 


regex a diakritika



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

165

12.07.2012 9:34

d0.0b

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

regex

v PHP, ASP

2

111

08.02.2015 23:24

esso82

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

MySQL REGEX

v Databázy

2

119

20.06.2013 16:16

Punker661

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

Pomoc s regex-om

v PHP, ASP

1

79

13.04.2013 9:10

BX

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

diakritika

v HTML, XHTML, XML, CSS

9

580

18.08.2010 9:50

locksmith

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

Diakritika

v Databázy

2

506

30.03.2009 22:22

22adamko

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

Diakritika

v HTML, XHTML, XML, CSS

13

546

03.12.2008 14:12

exoomer

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

Diakritika

v HTML, XHTML, XML, CSS

6

641

25.04.2007 16:54

p360t

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

diakritika

v HTML, XHTML, XML, CSS

13

322

01.12.2010 14:18

coldak

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

Diakritika

v Delphi, Visual Basic

1

516

05.05.2009 20:20

programator

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

Diakritika

v Redakčné systémy

19

1125

06.05.2007 10:54

p360t

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

Diakritika

v HTML, XHTML, XML, CSS

1

257

25.10.2009 20:58

don jebot

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

Diakritika

v Databázy

11

822

30.08.2009 20:30

bmatias

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

Diakritika

v Ostatné

8

555

22.10.2010 22:10

Rammstein

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

Diakritika help!!!

v Redakčné systémy

10

961

10.07.2008 18:07

capricorn7

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

WP - diakritika

v Redakčné systémy

15

361

23.09.2013 8:04

don jebot



© 2005 - 2017 PCforum, edited by JanoF