Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

tognere

Não permitir palavras com espaços na validação....

Recommended Posts

galera...to com o seguinte problema....eu estou fazendo um formulario de cadastro de usuarios ....fiz a validação contra senha incorreta e validação contra campo vazio....entretanto eu naum quero q os usuarios cadastrados digitem palavras com espaços....o que eu posso fazer para fazer este tipo de validação????????????? alguem pode me ajudar????? desde já agradeço.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existem várias maneiras, a mais simples é você usar str_replace para remover espaços em branco, usar strlen para contar os caracteres da string original e da nova (depois do str_replace) e por fim verificar se as duas strings tem o mesmo tamanho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ESerra...achu q vc me entendeu errado....eu naum quero remover os espaços em branco...eu quero tipo uma função pra verificar se existem espaços em branco....se existir que naum quero permitir o cadastro deste usuario....entendeu??? espero que possa me ajudar.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro vamos ao teste:

  $string1 = 'com espaço em branco';
  $string2 = 'semespaço';
 
  if( preg_match('/\s/', $string1))
  {
    echo 'tem espaço em branco';
  }
 
  if( preg_match('/\s/', $string2))
  {
    echo 'tem espaço em branco';
  }

 

Sabendo que funcionou, então criamos a função:

  function check_white_space($string)
  {
    return ( ! preg_match('/\s/', $string));
  }

Compartilhar este post


Link para o post
Compartilhar em outros sites

cuidado com os caracteres multbyte e os tipos half e full width..

exemplo:

 

$str = 'foo bar'; // tem espaço em branco mas retornará N, pois é um caracter multbyte

echo ( preg_match('/\s/', $str) ) ? 'Y' : 'N';

 

 

$str = 'foo bar'; // esse é ASC.. retornará Y

echo ( preg_match('/\s/', $str) ) ? 'Y' : 'N';

 

 

Para evitar esse conflito, converta-o com mb_convert_kana()

 

$str = 'foo bar';

echo ( preg_match( '/\s/', mb_convert_kana($str, "s") ) ) ? 'Y' : 'N';

 

Visualmente parece imperceptível, mas é possível enxergar a diferença do tamanho:

 

' ' ' ' ' ' '
' ' ' ' ' ' '

 

obs: deixei fora da tag "code" pra evitar quebrar a formatação original

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Senhores, bom dia.

Removi os posts ofensivos e as conversas paralelas que não ajudavam a resolver a dúvida.

 

@topic

Identificar um caracter no meio de uma cadeia de caracteres é bem simples.

Vamos pensar um pouco ?

 

1. Varrer caracter por caracter, comparando se ele é ou não um espaço.

2. Usar alguma função que verifique se existe tal coisa no meio da string. strpos

http://php.net/strpos

3. Usar Expressão Regular para casar um padrão esperado. (sugestão do Wallace)

4. Remover os espaços e comparar o tamanho das strings (sugestão do ESerra)

 

 

Eu pessoalmente considero a sugestão 2 a mais simples de todas.

Tente implementar alguma e volte com as dúvidas. Ou pense em mais alguma outra, é um bom exercício de programação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

galera.... utilizei a função strstr(); deu certo....muito obrigado.... VCs me ajudaram muito...

putz, é mesmo! também dá certo.

 

Oi Senhores, bom dia.

Removi os posts ofensivos e as conversas paralelas que não ajudavam a resolver a dúvida.

Paz e amor! E feliz 2014.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.