Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

spcl

contrario de replace

Mensagens Recomendadas

spcl

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

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 );

Editado por HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
spcl

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
brunoais

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%.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
spcl

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-_'

Editado por Rui Carlos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nelsonr

Testei agora num editor online e funcionou bem

<?php
$data="az09AZ-_'";
$data=preg_replace('/[^a-z,0-9,A-Z,_-]+/','', $data );
echo $data;

// az09AZ-_
?>

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
spcl

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

Editado por spcl

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.