Gacha Posted November 9, 2004 Report Share Posted November 9, 2004 Nu lieta tāda, ka gribu pārbaudīt ievadlauku, ka tiek lietoti, tikai burti. Ne regexiem ļoti maz ko saprotu, tapēc nevaru šito atrisināt :) Šitais neder: preg_match("#^([a-zA-Z]+)$#", 'TEXTS') jo ja lieto ĀĒŪ tad atgriež FALSE. Izdomāju, ka vajag uztaisīt tādu izteiksmi, kas atļauj visu izņemot ciparus un simbolus. Izmeklējos google, bet netardu tādu un pagaidam nezinu tik daudz, lai pats tadu izveidotu. Varbūt kāds var izpalīdzēt, bet lūdzu paskaidrojiet, kā tas viss notiek :) Link to comment Share on other sites More sharing options...
Analgiins Posted November 9, 2004 Report Share Posted November 9, 2004 šitas neder: preg_match("/(\D+)/", $TEXT) \D - any character that is not a decimal digit Link to comment Share on other sites More sharing options...
Gacha Posted November 9, 2004 Author Report Share Posted November 9, 2004 Gandrīz, bet ne, vajag, lai nebūtu arī neviena simbola Link to comment Share on other sites More sharing options...
Analgiins Posted November 9, 2004 Report Share Posted November 9, 2004 tad jau vajag šitā: preg_match("/^(\w+)$/", $TEXT) \w - any "word" character Link to comment Share on other sites More sharing options...
Gacha Posted November 9, 2004 Author Report Share Posted November 9, 2004 Diemžēl šis arī neder, ja lieto ĀĒūķļ: <?php $data = 'ĀĀŠŠŠŠĒĒĒ'; if(preg_match("/^(\w+)$/", $data)){ echo 'Der mums shis: '.$data; }else{ echo 'Neder mums shis: '.$data; } ?> Atgriež FALSE Link to comment Share on other sites More sharing options...
Analgiins Posted November 9, 2004 Report Share Posted November 9, 2004 Jāstrādā. Skaties vai tev ar charsetiem viss kārtībā Link to comment Share on other sites More sharing options...
Venom Posted November 9, 2004 Report Share Posted November 9, 2004 varbūt der virzīties no pretējā - pārbaudīt vai ir vismaz 1 simbols, kas nav burts e.g. [0-9~!@#$%^&*()_+=-/.\?!] Link to comment Share on other sites More sharing options...
Gacha Posted November 9, 2004 Author Report Share Posted November 9, 2004 (edited) AR charsetiem viss tagad ir ok gan hederi, gan failā! <?php header('Content-Type: text/html; charset=UTF-8'); $data = 'aaaaā'; if(preg_match("/^(\w+)$/", $data)){ echo 'Der mums shis: '.$data; }else{ echo 'Neder mums shis: '.$data; } ?> Bet tiko kad ielieku ā vai kādu tamlīdzīgu, tad ie FALSE. Bik paskatijos un pagaidām esmu nonācis līdz šim: <?php header('Content-Type: text/html; charset=UTF-8'); $data = 'aa 0aĒaā'; if(!ereg("/^[[:punct:]]|[[:digit:]]|[[:space:]]+$/", $data)){ echo 'Der mums shis: '.$data; }else{ echo 'Neder mums shis: '.$data; } ?> Lieta tāda, ka šis aptuveni strādā, bet nez kapēc tas atļauj arī "space". Vēl vajadzētu aizliegt visus šitos, bet tas man neizdodas !@#$%^&*()_-+=><~`,.?/\|[]{} EDIT: Venom tavejo vel nepaspeju izlasit, japamēģina! Edited November 9, 2004 by Gacha Link to comment Share on other sites More sharing options...
Gacha Posted November 9, 2004 Author Report Share Posted November 9, 2004 Man kaut kā šī rinda nestrādā: !ereg("/^[0-9~!@#$%^&*()_+=-/.\?!]$/", $data) Vai tur gadījumā nevajaga tos speciālos backslashot? Link to comment Share on other sites More sharing options...
Gacha Posted November 9, 2004 Author Report Share Posted November 9, 2004 Beigu beigās esmu ticis pie šādas izteiksmes: ereg("[0-9!@#\$%\^&\*\(\)_\+=-\/\.\\\?\|\[{}><~`,|[:space:]]", $data) Te man nepatīk 2 liets, 1. ka nez kapēc neatļauj lielos burtus un 2. ka ] var lietot, nesanāca man to tur ielikt. Var kāds papildināt vai palabot šo izteiksmi? Link to comment Share on other sites More sharing options...
Analgiins Posted November 9, 2004 Report Share Posted November 9, 2004 (edited) 1) es visu regexu rakstītu šādi: ereg("(...)") 2) kur katru "slikto" simbolu atdalītu ar or: | 3) meta-rakstzīmēm iekš ereg cik zinu vajag divus backslash 4) tas, cik tur ir vai nav tukšumu, pārbaudītu jau ar preg_match, kur noderēt varētu \s vai \S Edited November 9, 2004 by Analgiins Link to comment Share on other sites More sharing options...
Gacha Posted November 9, 2004 Author Report Share Posted November 9, 2004 Tad nu beigās arī izdevās: preg_match("/[0-9~!@#\$%\^&\*\(\)\-_\+=\{\}\[\];:\'\"\\\|><,\.\/\?\\s\\n\\r\\t]/", $data) Šis strādā un ir tas kas bija vajadzīgs, prieks, ka tagad ir kāda sajēga no regexiem :) Link to comment Share on other sites More sharing options...
Venom Posted November 10, 2004 Report Share Posted November 10, 2004 2Gacha - nebija vieglāk rakstīt APOSTOFOS, nevis pēdiņās? mazāk backslashotu nāktos! Link to comment Share on other sites More sharing options...
Gacha Posted November 10, 2004 Author Report Share Posted November 10, 2004 (edited) Kas tieshi tad butu mazaak? Edited November 10, 2004 by Gacha Link to comment Share on other sites More sharing options...
Venom Posted November 10, 2004 Report Share Posted November 10, 2004 "/[0-9~!@#\$%\^&\*\(\)\-_\+=\{\}\[\];:\'\"\\\|><,\.\/\?\\s\\n\\r\\t]/"== '/[0-9~!@#$%^&\*\\-_\+={};:\'"|\.!?\/\s'."\n\t\r".']/' Link to comment Share on other sites More sharing options...
Recommended Posts