Stránka: 1 z 1
| [ Príspevkov: 25 ] | |
Autor | Správa |
---|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 | 268 Bydlisko: Levice |
Prosim vedel by niekto poradit - uzivatel zadava nazov clanku v INPUT text ..... vo formulari. Po odoslani kontrolujem vstupy pomocou php, ale neviem si rady s jednou vecou:
Chcem, aby nazov nemohol pisat cely VELKYMI pismenami, ale prve pismena slov mozu byt velke. Napr.ak niekto napise BURKA V BRATISLAVE, tak to je zle. Ale ak napise Burka v Bratislave, to moze byt.
Viete helfnut? Proste pomocou reg.vyrazu osetrit aby nemohli byt v nazve 2 a viac velkych pismen bezprostredne za sebou, ale kapitalky mozu byt.
Vdaka!
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
a co tak to automaticky prekonvertovat?
_________________ 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ý: 21.04.07 Prihlásený: 07.09.08 Príspevky: 16 Témy: 2 | 2 |
je to narychlo, vyzaduje to vsak aj medzeru na konci, mozno pride niekto s niecim lepsim
Kód: ^(([a-z]|[A-Z]){1}[a-z]{0,}[\ ]){1,}$
|
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 | 268 Bydlisko: Levice |
stenley, prekonvertovat cely nazov na male pismena neni problem, ale momentalne ma nenapada ako zachovat kapitalky, kedze neviem, kolko slov bude mat ten nazov
Gosty: medzera na konci? a naco?
|
|
Registrovaný: 21.04.07 Prihlásený: 07.09.08 Príspevky: 16 Témy: 2 | 2 |
ok mozno som to zle pochopil chces to opravit alebo len skontrolovat?
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
neopagan píše: stenley, prekonvertovat cely nazov na male pismena neni problem, ale momentalne ma nenapada ako zachovat kapitalky, kedze neviem, kolko slov bude mat ten nazov
co s tym ma pocet slov v nazve? pouzi napr. funkciu ucwords() v kombinacii s modifikaciami tejto funkcie, ktore su uvedene v diskusii v manuale k tejto funkcii
Naposledy upravil stenley dňa 12.08.2008 20:07, celkovo upravené 2
_________________ 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ý: 30.04.08 Prihlásený: 15.05.15 Príspevky: 884 Témy: 3 | 3 |
Alebo to skus kontrolovat tak, ze velke pismeno moze byt az za medzerou.
|
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 | 268 Bydlisko: Levice |
presne to som hladal stenley! Doteraz netusim, preco som o existencii tejto funkcie ucwords() nevedel ..
nakopol si ma spravnym smerom diky
|
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 | 96 |
Kód: if($_POST['hodnota']==strtoupper($_POST['hodnota'])){kill_the_user_cause_hi_is_stupid();} Tá funkcia ucwords() je síce super, ale ak chceš dodržiavať slovenskú gramatiku, nepoužiteľná.
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
asi si nepochopoil vetu, ktoru som napisal pred tym, ze treba pouzit tuto funkciu spolu s inymi rieseniami, ktore su postnute v tej diskusii - tam je totiz vyriesena (naznacena) aj otazka diakritiky...
_________________ 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ý: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 | 96 |
Ide o to, že v slovenčine máš v nadpise iba prvé písmeno veľké. Potom už iba tam, kde by boli veľké začiatočné písmená aj v obyčajnom texte. Nejde mi o diakritiku. Pokiaľ to chceš na účely anglického textu, buďjiž.
Ak som furt nepochopil, napíš.
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
ked nechava uzivatelom pridavat nazvy, tak je logicke, ze nebudu vsetky napisane gramaticky spravne, bude chybat diakritika a pod., cize velke pismena v kazdom slove su tiez nepodstatne... mne je jedno, ako sa s tym vysporiada, pre mna za mna moze vsetky pridane nazvy aj rucne editovat... ale prvorade je hlavne, kde to bude pouzivat... a kedze si dal taku podmienku, ze mozu byt aj vsetky prve pismena velke, tak tam asi nepotrebuje striktne dodrziavat pravopis...
_________________ 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ý: 17.10.06 Prihlásený: 08.01.11 Príspevky: 1752 Témy: 17 | 17 |
pokial mu teda nezalezi na tom, ze prve pismena budu velke, tak najjednoduchsie bude previest ich vsetky na male a pouzit css vlastnost text-transform:capitalize;
//jj, aj tak sa da, na to som uplne zabudol (stenley)
_________________ A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table. |
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 | 96 |
Ak je u prdele, či je to gramaticky správne, tak to už je potom jedno, máš pravdu.
Myslím si, že keď na stránke upravuješ gramatiku k horšiemu, tak tým znižuješ kvalitu webu. Ale pokiaľ nejde o nejaký megaportál, ale o nejakú diskusiu navštevovanú 10 ľuďmi za deň, tak to je fakt jedno.
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 | 268 Bydlisko: Levice |
Dobre, rozhodol som sa to spravit trochu inak : Chcem aby v nazve nemohlo byt 2 a viac velkych pismen bezprostredne za sebou. Proste ked uzivatel zada nazov do inputu, ktory obsahuje aspon 2 velke pismena tesne za sebou, tak sa formular neodosle ale upozorni ho. Rozhodol som sa, ze to nebudem predsa len konvertovat a menit funkciou ucwords(), ale potrebujem len zistit, ci nazov obsahuje 2 a viac velkych pismen za sebou. Tolko.
Priklad: uzivatel zada nazov: Moj clanok je NAJlepsi! alebo Moj CLANOK JE NAJLEPSI, tak by sa pomocou reg. vyrazov (alebo inak?) zistilo, ze nazov obsahuje 2 a viac velkych pismen iducich za sebou a formular by sa neodoslal. Dufam, ze teraz uz je jasne co presne chcem, i ked som najprv uvazoval nad stenleyho riesenim to prekonvertovat.
|
|
Registrovaný: 17.10.06 Prihlásený: 08.01.11 Príspevky: 1752 Témy: 17 | 17 |
Kód: ([A-Z]){2,} najde postupnost aspon 2 velkych pismen v tejto podobe samozrejme bez diakritiky. ostatne si tam dopln
_________________ A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table. |
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | 0 |
Môžeš vyskúšať aj [\p{Lu}]{2,} prípadne [[:upper:]]{2,}
|
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 | 268 Bydlisko: Levice |
Hm, neviem ci to robim spravne, ale skusil som to takto:
Kód: <? function checktext($text) { return preg_match ("([A-Z]){2,}", $text); }
?> no a potom Kód: if(!checktext($_POST['nazov']) && (!empty($_POST['nazov']))) { echo 'Názov obsahuje velke pismena'; exit(); }
ale stale mi vypisuje chybu Warning: preg_match() [function.preg-match]: Unknown modifier '{' in ...
tak isto aj pri chrono-vych funkciach
|
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 | 96 |
How the suchy says: utfcss : Use the f***ing CSS!
a máš po probléme. ja by som to riešil moc komplikovaným spôsobom a to že by som si dal oznam veľkých písmen do poľa a vždy zisťoval či dané písmeno je veľké ale to je môj stranšne jednoduchy, pomalý a komlikovaný systém
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
Hmm, a co v pripade, ked sa budu striedat male a velke pismena? napr. "pCfOrUm" - to tiez nevypada velmi privetivo
kde to chces vlastne pouzivat?
_________________ 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ý: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 | 268 Bydlisko: Levice |
Ked mam byt konkretny, tak chcem to pouzit na http://www.inbazar.sk - proste aby nemohli pridavat nazov inzeratu velkymi pismenami. Preto chcem tym sposobom ako som uviedol skontrolovat pred odoslanim, ci v nazve nie su 2 a viac velkych pismen za sebou a v tom pripade neodoslat formular.
stenley: mas pravdu, ale nepredpokladam, ze by niekto pisal takto pCfOrUm. Neda sa kazdy pripad osetrit. Keby som vsetko prekonvertoval na male a nechal len kapitalky, tiez neni dobre , lebo napr. Predam Novy Renault tiez nevyzera bohvieako, lebo slovo novy by malo ostat male.
Mne by uplne stacilo osetrit len to, aby neboli vedla seba 2 a viac velke pismena, tym zarucim, ze nazov nebude cely velkymi pismenami i ked tvjmu spominanemu prikladu nezabranim. Len nechapem, kde mam chybu v tom mojom uvedenom priklade s funkciou.
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
skus namiesto preg_match() pouzit ereg()
osobne by som tvoj problem riesil asi tak, ze by som prve pismeno v prvom slove dal velkym pismenom a ostatne malym, okrem pripadu, ked by nejake slovo obsahovalo prve pismeno velke - to pismeno by som nechal zachovane...
Priklad:
"predam garazovanu SKODU FELICIA v Bratislave" by som prekonvertoval na "Predam garazovanu Skodu Felicia v Bratislave"
ale zas, co spravis, ked niekto uvedie v nazve napr. TDI? to sa predsa nedava malymi pismenami a tvoj skript by to ani neodoslal, co je podla mna chyba... tak isto aj moj navrh by neobstal... ale zas by sa dalo spravit obmedzenie, ze slovo pozostavajuce len s velkych pismen moze mat max 3-4 znaky... to vsak uz asi moc komplikujem
_________________ 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ý: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 | 268 Bydlisko: Levice |
s tym eregi to pekne funguje. vdaka stenley.
v tvojom pripade napr. ak niekto napise predam GARAZOVANU SKODU FELICIA v Bratislave tak uz to nevies prekonvertovat na Predam garazovanu Skodu Felicia v Bratislave, lebo by bolo aj garazovanu s velkym G.
aj s tym TDI mas pravdu. hm... nevidim tu ziadne univerzalne riesenie, tak snad by som to vyriesil tak, ze namiesto 2 znakov dam 4 a viac. Cize neodosle len take nazvy, kde je 4 a viac velkych pismen za sebou. Ani toto neni dobre riesenie, ale nic lepsie ma nenapada a myslim, ze na to, aby som zabranil celemu nazvu velkymi pismenami a povolil nazvy do 3 velkych pismen to staci...
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
nj, mas pravdu s tym konvertovanim popripade si mozes pozriet, ako to maju riesene na inych inzertnych weboch... mozno sa tym ani netrapia a ty sa tym zaoberas zbytocne... alebo jednotlive inzeraty prechadzaju najskor kontrolou a az potom su zverejnovane...
Naposledy upravil stenley dňa 14.08.2008 9:55, 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ý: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | 0 |
Pri tom regexpe v preg match musíš dať na začiatok a koniec nejaký znak, takže by to mohlo vyzerať nejako takto: Kód: "/[A-Z]{2,}/" "/[\p{Lu}]{2,}/" "/[[:upper:]]{2,}/"
|
|
Stránka: 1 z 1
| [ Príspevkov: 25 ] | |
|