Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

Regulární výraz – pouze ASCII a pár znaků

Registrace
verified
rating uzivatele
(1 hodnocení)
11. 9. 2012 21:59:49
Zdravím, přiznám se, že si s regulárníma výrazama moc nerozumím. A teď potřebuju ošetřit input, kam půjdou zadat pouze ASCII + pár dalších znaků jako například £€¥§ .
Neví někdo jak na to?
Googlil jsem co to dalo, ale nic moc jsem nenašel.
Našel jsem tohle, což funguje a projdou jenom ASCII znaky, ale nevím jak to upravit, aby prošlo i těch pár znaků co chci přidat.
if(preg_match('//', $string->value)) {
return FALSE;
} else {
return TRUE;
}
Díky
11. 9. 2012 21:59:49
https://webtrh.cz/diskuse/regularni-vyraz-pouze-ascii-a-par-znaku/#reply807254
ViPErCZ
verified
rating uzivatele
(21 hodnocení)
11. 9. 2012 22:14:32
if(preg_match('/|(£|€|¥|§)+/
píšu z hlavy... ozkoušejte ;-)
11. 9. 2012 22:14:32
https://webtrh.cz/diskuse/regularni-vyraz-pouze-ascii-a-par-znaku/#reply807253
Registrace
verified
rating uzivatele
(1 hodnocení)
11. 9. 2012 22:41:09
Ne, tohle nefunguje.
Už jsem ale asi přišel na způsob, jen nevím jak ho napsat.
Potřebuju zajistit, aby string obsahoval jenom znaky s HEX 20 - FF (viz. http://www.ascii-code.com/)
Jen nevím jak toho docílit.
11. 9. 2012 22:41:09
https://webtrh.cz/diskuse/regularni-vyraz-pouze-ascii-a-par-znaku/#reply807252
Petr Zachrdla
verified
rating uzivatele
(1 hodnocení)
11. 9. 2012 22:44:51
a tohle? taky jsem to nezkoušel ;o))
if(preg_match('/(+)/', $string->value)) {
---------- Příspěvek doplněn 11.09.2012 v 22:46 ----------
změnil jsem tam ještě velké Z
11. 9. 2012 22:44:51
https://webtrh.cz/diskuse/regularni-vyraz-pouze-ascii-a-par-znaku/#reply807251
Registrace
verified
rating uzivatele
(1 hodnocení)
11. 9. 2012 22:57:28
Napsal Bedříšek;843358
a tohle? taky jsem to nezkoušel ;o))
---------- Příspěvek doplněn 11.09.2012 v 22:46 ----------
změnil jsem tam ještě velké Z
Tady asi neprojdou tečky, čárky, středník,... a spousta dalších věcí.
Jednoduše řečeno, co potřebuju je, aby se dal vložit pouze text v angličtině (neboli, jinak řečeno, potřebuji zakázat všechny národní abecedy - rozsypanej čaj, azbuka, arabština, čeština,...) ale nechci omezovat znaky, chci aby se tam dalo normálně psát, čemuž krásně odpovídá ASCII + pár znaků. Nebo Extended ASCII jak jsem zjistil. Jen to potřebuju zapsat. A teď dumám nad tím jak.
Když to vyjádřím slovně, tak potřebuju napsat v regulárním výrazu: pokud řetězec obsahuje cokoliv jiného než znaky s HEX 20 - FF (extended ASCII), tak ...
11. 9. 2012 22:57:28
https://webtrh.cz/diskuse/regularni-vyraz-pouze-ascii-a-par-znaku/#reply807250
K čemu to má sloužit? Proč jen ASCII? To používá jen malá část světa.
11. 9. 2012 23:00:37
https://webtrh.cz/diskuse/regularni-vyraz-pouze-ascii-a-par-znaku/#reply807249
Petr Zachrdla
verified
rating uzivatele
(1 hodnocení)
11. 9. 2012 23:01:12
Napsal Registrace;843367
Tady asi neprojdou tečky, čárky, středník,... a spousta dalších věcí.
Jednoduše řečeno, co potřebuju je, aby se dal vložit pouze anglický text, čemuž krásně odpovídá ASCII + pár znaků. Nebo Extendex ASCII jak jsem zjistil. Jen to potřebuju zapsat. A teď dumám nad tím jak.
Když to vyjádřím slovně, tak potřebuju napsat v regulárním výrazu: pokud řetězec obsahuje cokoliv jiného než znaky s HEX 20 - FF (extendet ASCII), tak ...
tak použij vlastní konstrukci
if(preg_match('/(+)/', $string->value)) {
11. 9. 2012 23:01:12
https://webtrh.cz/diskuse/regularni-vyraz-pouze-ascii-a-par-znaku/#reply807248
Registrace
verified
rating uzivatele
(1 hodnocení)
11. 9. 2012 23:12:58
Napsal Martin Schlemmer;843370
K čemu to má sloužit? Proč jen ASCII? To používá jen malá část světa.
Jak píšu, chci aby se dalo psát jen v angličtině. Ale tím myslím normálně psát, tzn. libra, euro a podobný znaky chci, protože jsou pro normální diskuzi potřebný.
Napsal Bedříšek;843371
tak použij vlastní konstrukci
To už jsem zkoušel. Ale tady nic z £€¥§ neprojde.
11. 9. 2012 23:12:58
https://webtrh.cz/diskuse/regularni-vyraz-pouze-ascii-a-par-znaku/#reply807247
Proč jen angličtina? A jak souvisí angličtina s ASCII? V ASCII se dá psát spousty jazyky.
12. 9. 2012 00:01:49
https://webtrh.cz/diskuse/regularni-vyraz-pouze-ascii-a-par-znaku/#reply807246
Registrace
verified
rating uzivatele
(1 hodnocení)
12. 9. 2012 13:26:43
Napsal Martin Schlemmer;843390
Proč jen angličtina? A jak souvisí angličtina s ASCII? V ASCII se dá psát spousty jazyky.
Protože jde o anglickej web, není a nebude plánován v cizích jazycích a nikdo se tam jinak než anglicky bavit nebude. Takže je zbytečný, aby tam byla možnost psát v různých šílených abecedách.
A ASCII proto, že nejlíp a dostatečně pokrývá celou škálu znaků, který se používají - tak aby neomezovala normální diskuzi, ale zároveň aby zabránila psaní v čemkoli jiným.
Ano, sice se v tom dá psát i spoustou jiných jazyků který používají latinku, ale o to mi nejde. Blbosti se budou mazat ručně i tak, ale omezení blbostí psaných například v čínštině se dá zbavit i automaticky.
Jen musím přijít na ten regulární výraz. A regulární výrazy, stejně jako htaccess jsou můj nepřítel - nepřehlednej guláš, různý vzájemný ovlivňování. Blbě se to učí a ještě hůř se to pamatuje. Zlatý "normální" syntaxe jako PHP, C++, JS,...
12. 9. 2012 13:26:43
https://webtrh.cz/diskuse/regularni-vyraz-pouze-ascii-a-par-znaku/#reply807245
To je velmi špatné řešení:
Angličtina není omezená na ASCII. Například osobní a místní jména používají různé znaky.
V množině ASCII znaků lze psát mnoha jazyky, které nejsou angličtinou.
Jde to proti všem trendům internacionalizace, což je oblast, ve které vývojáři webů a aplikací dělají dost chyb i nevědomky, natožpak s takovýmto nápadem.
Existují naprosto legitimní a užitečné vícebytové znaky, které svým whitelistem, omezeným na symboly čtyř měn, omezujete.
Omezením na ASCII můžete taky zneplatnit nové domény, emailové adresy nebo celé národní koncovky.
http://www.networkworld.com/news/2009/103009-icann-approves-internationalized-domain.html
Silně doporučuji, abyste tento nápad opustil. Je špatný, ublížíte svým uživatelům, neřkuli že ho chcete implementovat způsobem, kterému nerozumíte a který přinese další skryté problémy.
12. 9. 2012 13:48:45
https://webtrh.cz/diskuse/regularni-vyraz-pouze-ascii-a-par-znaku/#reply807244
Registrace
verified
rating uzivatele
(1 hodnocení)
19. 9. 2012 22:26:32
V mém případě to má smysl, ale konkrétní důvody nechci rozvádět - zkrátka to uživatele omezovat nebude.
Jinak, kdyby někdo chtěl stejně jako já zakázat všechny exotický abecedy, tak pro ověření jsem si nakonec sestavil tento kód:
if(preg_match("/p{Arabic}|p{Armenian}|p{Avestan}|p{Balinese}|p{Bamum}|p{Bengali}|p{Bopomofo}|p{Braille}|p{Buginese}|p{Buhid}|p{Canadian_Aboriginal}|p{Carian}|p{Cham}|p{Cherokee}|p{Coptic}|p{Cuneiform}|p{Cypriot}|p{Cyrillic}|p{Deseret}|p{Devanagari}|p{Egyptian_Hieroglyphs}|p{Ethiopic}|p{Georgian}|p{Glagolitic}|p{Gothic}|p{Greek}|p{Gujarati}|p{Gurmukhi}|p{Han}|p{Hangul}|p{Hanunoo}|p{Hebrew}|p{Hiragana}|p{Imperial_Aramaic}|p{Inherited}|p{Inscriptional_Pahlavi}|p{Inscriptional_Parthian}|p{Javanese}|p{Kaithi}|p{Kannada}|p{Katakana}|p{Kayah_Li}|p{Kharoshthi}|p{Khmer}|p{Lao}|p{Lepcha}|p{Limbu}|p{Linear_B}|p{Lisu}|p{Lycian}|p{Lydian}|p{Malayalam}|p{Meetei_Mayek}|p{Mongolian}|p{Myanmar}|p{New_Tai_Lue}|p{Nko}|p{Ogham}|p{Old_Italic}|p{Old_Persian}|p{Old_South_Arabian}|p{Old_Turkic}|p{Ol_Chiki}|p{Oriya}|p{Osmanya}|p{Phags_Pa}|p{Phoenician}|p{Rejang}|p{Runic}|p{Samaritan}|p{Saurashtra}|p{Shavian}|p{Sinhala}|p{Sundanese}|p{Syloti_Nagri}|p{Syriac}|p{Tagalog}|p{Tagbanwa}|p{Tai_Le}|p{Tai_Tham}|p{Tai_Viet}|p{Tamil}|p{Telugu}|p{Thaana}|p{Thai}|p{Tibetan}|p{Tifinagh}|p{Ugaritic}|p{Vai}|p{Yi}/u", $string)) {
return FALSE;
} else {
return TRUE;
}
Všechny normální znaky projdou, stejně jako latinka + diakritika evropských jazyků. Tzn. naprosto v klidu pro normální anglickou diskuzi bez jakýchkoliv omezení.
Co neprojde jsou všechny exotický abecedy (tzn. arabština, azbuka, asijský jazyky, včetně dialektů,...), zkrátka vše co nemá v normální (anglické a evropské) diskuzi co pohledávat a sloužilo by jenom pro trolling a podobný věci.
19. 9. 2012 22:26:32
https://webtrh.cz/diskuse/regularni-vyraz-pouze-ascii-a-par-znaku/#reply807243
naniccz
verified
rating uzivatele
(3 hodnocení)
19. 9. 2012 22:40:00
Trollovat v anglické diskusi hebrejsky, velmi mazané.
19. 9. 2012 22:40:00
https://webtrh.cz/diskuse/regularni-vyraz-pouze-ascii-a-par-znaku/#reply807242
Slanecek
verified
rating uzivatele
(2 hodnocení)
19. 9. 2012 22:45:36
Napsal naniccz;846418
Trollovat v anglické diskusi hebrejsky, velmi mazané.
Pokud se v tý diskuzi baví Arabáci, tak ano.
19. 9. 2012 22:45:36
https://webtrh.cz/diskuse/regularni-vyraz-pouze-ascii-a-par-znaku/#reply807241
phpkoder
verified
rating uzivatele
16. 1. 2020 19:30:20
Online nástroj pro testování regulárních výrazů je na http://retezce.jednoduse.cz/
16. 1. 2020 19:30:20
https://webtrh.cz/diskuse/regularni-vyraz-pouze-ascii-a-par-znaku/#reply807240
Pro odpověď se přihlašte.
Přihlásit