Portál AbcLinuxu, 14. května 2025 17:03

Dotaz: omezení textového vstupu na "viditelné" znaky - JavaScript

19.8.2009 05:50 Ladislav Nešněra | skóre: 30 | blog: ..+2
omezení textového vstupu na "viditelné" znaky - JavaScript
Přečteno: 355×
Odpovědět | Admin
Na událost onkeydown odchytávám stisk klávesy. Další běh kódu bych potřeboval omezit pouze na platné textové znaky tj. žádné funkční klávesy, Alty, Entry apod. Zkoušel jsem něco jako
var validchars = new RegExp("[ A-Za-z0-9&,.-]");
ale nepostihuje to diakritiku. Také jsem zkoušel [[:alnum:]], ale s tím jsem v JavaScriptu nepochodil. Vypisovat všechny znaky přicházející v úvahu se nelíbí. Napadá vás nějaké šikovné řešení? Díky
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Toman avatar 19.8.2009 11:26 Toman | skóre: 29 | blog: Tomanův blog | Kostelec nad Orlicí
Rozbalit Rozbalit vše Re: omezení textového vstupu na "viditelné" znaky - JavaScript
Odpovědět | | Sbalit | Link | Blokovat | Admin
No, tento problém jsem řešil, ale nevyřešil jinak, než pattern = /^[ a-zA-Z0-9 ěščřžýáíéúůĚŠČŽÝÁÍÉÚďĎťŤńŇóÓ]+$/;. Ještě by to šlo řešit negací, tedy zápisem, které znaky nesmí řetězec obsahovat.
Have you tried turning it off and on again? | tomaskavalek.cz | Google
19.8.2009 20:08 Ladislav Nešněra | skóre: 30 | blog: ..+2
Rozbalit Rozbalit vše Re: omezení textového vstupu na "viditelné" znaky - JavaScript
přesně výčtu bych se rád vyhnul, ale možná to nebude elegantní, zato funkční. I když dát dohromady všechny platné znaky.. - dle mého neprojdou přehlásky (ä, ë, ü) či € nebo %. Rozhodně díky. Jsem rád, že v tom nejedu sám ;-)
mess avatar 19.8.2009 16:09 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
Rozbalit Rozbalit vše Re: omezení textového vstupu na "viditelné" znaky - JavaScript
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkus \S (match vše, jen ne whitespace), případně \s (match whitespace).
Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.
mess avatar 19.8.2009 16:11 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
Rozbalit Rozbalit vše Re: omezení textového vstupu na "viditelné" znaky - JavaScript
Odpovědět | | Sbalit | Link | Blokovat | Admin
Takže vcelku to bude nějak takhle:
var validchars = new RegExp("\\S");
Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.
19.8.2009 21:00 Ladislav Nešněra | skóre: 30 | blog: ..+2
Rozbalit Rozbalit vše Re: omezení textového vstupu na "viditelné" znaky - JavaScript
při tomto zápisu mi prochází vše, co není odchyceno dříve jako klávesová zkratka :-(

Navíc to vypadá, že není implementace jako implementace - na Win a v IE mi [a-žA-Ž] obsáhne i diakritiku, na Linuxu a FF žádná změna..

28.8.2009 13:44 NeoV | skóre: 23
Rozbalit Rozbalit vše Re: omezení textového vstupu na "viditelné" znaky - JavaScript

 '\s' resp. '\S' je urcite to co hladas :-) zaroven to este musis skombinovat tak, aby nefiltroval znak medzera ' '.

a uchylnosti typu [a-ž] radsej uz nikdy nepouzivaj :-) rozne platformy pouzivaju rozne codepage kvoli tomu ti to pod Linuxami nejde (nema to nic spolocne s FF) - subor je v inom kodovani a miesto ž tam je nieco uplne ine...

Marek Bernát avatar 28.8.2009 21:28 Marek Bernát | skóre: 17 | blog: Arcadia
Rozbalit Rozbalit vše Re: omezení textového vstupu na "viditelné" znaky - JavaScript

O tú kódovú stránku tam ani tak nejde. Ide skôr o to, že pre písmená, ktoré nie sú z ascii neexistujú štandardizované sekvencie. V ASCII to funguje proste preto, že tam ide a--z za sebou. Ale napríklad ak máš kódovanie a--z%#@$@á--ž, tak ti [a-ž] odchytí aj znaky, ktoré si vôbec neplánoval (čím chcem povedať, že je dosť možné, že mu to nefunguje ani tom windowse, ak nemá nejakou náhodou zázračnú znakovú stránku). Na rovnaký problém by si narazil, keby si spravil [A-z] v nádeji, že matchneš veľké aj malé písmená naraz (a naivnom [a-Z] ani nehovoriac) :-) V každom prípade máš pravdu, že používať by sa to nemalo, ak človek nevie presne, čo robí :-)

physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.