Portál AbcLinuxu, 14. května 2025 17:03
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
pattern = /^[ a-zA-Z0-9 ěščřžýáíéúůĚŠČŽÝÁÍÉÚďĎťŤńŇóÓ]+$/;
. Ještě by to šlo řešit negací, tedy zápisem, které znaky nesmí řetězec obsahovat.
\S
(match vše, jen ne whitespace), případně \s
(match whitespace).
var validchars = new RegExp("\\S");
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..
'\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...
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í
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.