spcl Posted September 2, 2013 at 10:56 AM Report #523159 Posted September 2, 2013 at 10:56 AM bom dia, eu para validar caracteres aceites utilizo uma expressão regular com o preg_match, e funciona bem, o problema e que eu agora estava a precisar de substituir todos os caracteres que estão fora da expressão expressão com preg_match: if(preg_match('/^[a-z,0-9,A-Z,_-]+$/', $data ) ): $output=1; endif; O que eu queria era limpar tudo o que não fosse letras de A a Z, a a z, números de 0 a 9 e os caracteres underline e hyphen, como posso fazer visto que o replace faz exactamente o contrario do que eu queria? obrigado
HappyHippyHippo Posted September 2, 2013 at 11:02 AM Report #523160 Posted September 2, 2013 at 11:02 AM (edited) o que pretendes é ao contrário de escolher tudo dentro da tua classe (a-z,0-9,A-Z,_-) escolher tudo que não faça parte dessa classe colocando o caracter '^' $data = preg_replace('/^[^a-z,0-9,A-Z,_-]+$/', '', $data ); Edited September 2, 2013 at 11:03 AM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
spcl Posted September 2, 2013 at 01:30 PM Author Report #523177 Posted September 2, 2013 at 01:30 PM não e isso bem isto pois eu coloquei: $data="az09AZ-_'"; $data=preg_replace('/^[^a-z,0-9,A-Z,_-]+$/','', $data ); echo $data; e o retorno foi
brunoais Posted September 2, 2013 at 01:50 PM Report #523181 Posted September 2, 2013 at 01:50 PM E qual é que devia de ser? "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%.
nelsonr Posted September 2, 2013 at 01:52 PM Report #523182 Posted September 2, 2013 at 01:52 PM Experimenta assim; $data=preg_replace('/[^a-z,0-9,A-Z,_-]+/','', $data );
spcl Posted September 2, 2013 at 02:30 PM Author Report #523194 Posted September 2, 2013 at 02:30 PM E qual é que devia de ser? 0 retorno foi az09AZ-_', nao sei porque nao imprimiu deveria ser: az09AZ-_ Experimenta assim; $data=preg_replace('/[^a-z,0-9,A-Z,_-]+/','', $data ); retorna na mesma az09AZ-_'
nelsonr Posted September 2, 2013 at 02:54 PM Report #523195 Posted September 2, 2013 at 02:54 PM Testei agora num editor online e funcionou bem <?php $data="az09AZ-_'"; $data=preg_replace('/[^a-z,0-9,A-Z,_-]+/','', $data ); echo $data; // az09AZ-_ ?>
spcl Posted September 2, 2013 at 03:13 PM Author Report #523198 Posted September 2, 2013 at 03:13 PM (edited) não sei por que mas no meu não esta a dar, imprime a plica vou tentar ver ja descobri o problema, nada que um reset ao wampserver não resolva obrigado a todos que ajudarão Edited September 2, 2013 at 03:09 PM by spcl
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now