2008/1/24 Rafael Crivellari Saliba Schouery <scho...@gmail.com>:
Use o Iconv.
Veja se isso resolve seu caso:
http://www.ruby-forum.com/topic/122471
2008/1/24 Rafael Crivellari Saliba Schouery <scho...@gmail.com>:
> Ol� pessoal,
> Primeiramente irei me apresentar, j� que � a minha primeira mensagem na
> lista.
> Eu me chamo Rafael Schouery, estou no ultimo ano do BCC e tenho um blog:
> http://vidageek.net
>
> Comecei a mexer um pouco com rails recentemente e estava fazendo um modelo
> usando
> o RSpec. � um modelo simples de usu�rio. Ele cont�m um campo fullname que
> gostaria
> de validar com uma regexp.
>
> Agora a quest�o �: existe um jeito f�cil de falar que permito qualquer
> letra, incluindo as
> acentuadas? Se n�o tivesse acento eu poderia fazer algo do tipo /\A[A-Za-z
> ]+\Z/
> (eu sei que n�o est� completamente redonda a regexp e que um nome come�ando
> por espa�o seria aceito, � apenas para ilustrar a quest�o).
> Mas a minha ideia � a de usar esses intervalos para tamb�m incluir os
> acentos,
> analisando aonde eles ocorrem na tabela do iso-8859-1.
> O problema � que a regexp vai ficar horrivel, e quem sabe at� errada por
> estar muito complicada.
>
> Deu uma pesquisa e me parece que o Ruby n�o � muito bom para tratar
> essas coisas. Existe um jeito mais f�cil?
>
> At� mais!
>
> --
> Rafael Schouery
> VidaGeek.net
> >
>
2008/1/27 Rafael Crivellari Saliba Schouery <scho...@gmail.com>:
a sua regex esta errada "\A" casa com qualquer caractere que n seja
alfabeto.
de que forma exatamente vc quer validar este campo?
se for apenas pra conter conter caracteres alphanumericos. vc pode usar
o seguinte:
/^[A-Za-zÀ-ú0-9.\s]+$/
Rafael Crivellari Saliba Schouery wrote:
> Ola,
> Vi em alguma documentação que \A indica pegar desde o inicio (igual ao ^).
> Acho que foi no pickaxe.
> Prefiro que o projeto fique independente do locale pois não sei onde
> será hosperdado ainda.
> Vou tentar estar regexp que você mandou. Como é apenas nome completo
> ela deve ser suficiente.
> Até mais!
>
> 2008/1/25 Ramon Soares <ramong...@gmail.com
> <mailto:ramong...@gmail.com>>:
Barra-Letra | Equivalente
\w | [[:alnum:]_] (palavra)
\W | [^[:alnum:]_] (não-palavra)
\d | [[:digit:]] (dígito)
\D | [^[:digit:]] (não-dígito)
\a | [[:alpha:]] (alfabeto)
\A | [^[:alpha:]] (não-alfabeto)
....
existe um boa quantidade de barra-letras.
Rafael Crivellari Saliba Schouery wrote:
> Isso não seria o \W?
>
> "The sequence \A matches the beginning of a string, and \z and \Z
> match the end of a string.
> (Actually, \Z matches the end of a string unless the string ends with
> a \n, it which case it matches
> just before the \n.)"
> Programming Ruby 2 Ed, pg 70
>
> Acho que me enganei em relação ao ^, confundi com o simbolo usado em
> Perl para indicar começo
> de string.
>
>
> 2008/1/28 Ramon Soares <ramong...@gmail.com
> <mailto:ramong...@gmail.com>>:
>
>
> o \A quer dizer [^A-Za-z]. o "^" dentro de uma lista torna esta uma
> lista negada.
>
> Rafael Crivellari Saliba Schouery wrote:
> > Ola,
> > Vi em alguma documentação que \A indica pegar desde o inicio
> (igual ao ^).
> > Acho que foi no pickaxe.
> > Prefiro que o projeto fique independente do locale pois não sei onde
> > será hosperdado ainda.
> > Vou tentar estar regexp que você mandou. Como é apenas nome completo
> > ela deve ser suficiente.
> > Até mais!
> >
> > 2008/1/25 Ramon Soares <ramong...@gmail.com
> <mailto:ramong...@gmail.com>
> > <mailto:ramong...@gmail.com <mailto:ramong...@gmail.com>>>:
da uma olhada no site http://aurelio.net/er tem bastante conteúdo. e
recomendo o livro do aurelio caso queira aprender + sobre regex.
Rafael Crivellari Saliba Schouery wrote:
> Isso não seria o \W?
>
> "The sequence \A matches the beginning of a string, and \z and \Z
> match the end of a string.
> (Actually, \Z matches the end of a string unless the string ends with
> a \n, it which case it matches
> just before the \n.)"
> Programming Ruby 2 Ed, pg 70
>
> Acho que me enganei em relação ao ^, confundi com o simbolo usado em
> Perl para indicar começo
> de string.
>
>
> 2008/1/28 Ramon Soares <ramong...@gmail.com
> <mailto:ramong...@gmail.com>>:
>
>
> o \A quer dizer [^A-Za-z]. o "^" dentro de uma lista torna esta uma
> lista negada.
>
> Rafael Crivellari Saliba Schouery wrote:
> > Ola,
> > Vi em alguma documentação que \A indica pegar desde o inicio
> (igual ao ^).
> > Acho que foi no pickaxe.
> > Prefiro que o projeto fique independente do locale pois não sei onde
> > será hosperdado ainda.
> > Vou tentar estar regexp que você mandou. Como é apenas nome completo
> > ela deve ser suficiente.
> > Até mais!
> >
> > 2008/1/25 Ramon Soares <ramong...@gmail.com
> <mailto:ramong...@gmail.com>
> > <mailto:ramong...@gmail.com <mailto:ramong...@gmail.com>>>:
dei uma pesquisada no man do pcre.
estava tirando como base o livro sobre er do aurelio e nele tinha as
informações que passei.
Rafael Crivellari Saliba Schouery wrote:
> Desculpa a insistência,
> mas qual a sua fonte em relação a isso?
> No irb:
> irb(main):007:0> puts ("rafael".match /fa/)
> fa
> => nil
> irb(main):008:0> puts ("rafael".match /\Afa/)
> nil
> => nil
> irb(main):009:0> puts ("rafael".match /\Ara/)
> ra
> => nil*
> *
> Ou seja, o primeiro encontra fa como pertencente a rafael,
> o segundo não mas o terceiro encontra ra mesmo se ter
> um caracter não alfanumerico no começo.
> Meu problema não é entender expressões
> regulares, já que já fiz o curso de Linguagens Formais e
> Automatos. Meu único problema é com os acentos e agora
> a questão de se \A é ou não indicador de começo de string,
> o qual já mostrei citando o próprio pickaxe.
> Desculpa ser chato no assunto, mas acho que é interessante
> que a versão correta seja dita para qualquer pessoa que venha ler
> esta série de e-mails.
>
> Até mais!
>
> 2008/1/28 Ramon Soares <ramong...@gmail.com
> <mailto:ramong...@gmail.com>>:
>
>
> quando ao "^" ele realmente significa começo da string salvo alguns
> casos, como quando estar dentro de uma lista.
>
> da uma olhada no site http://aurelio.net/er tem bastante conteúdo. e
> recomendo o livro do aurelio caso queira aprender + sobre regex.
>
> Rafael Crivellari Saliba Schouery wrote:
> > Isso não seria o \W?
> >
> > "The sequence \A matches the beginning of a string, and \z and \Z
> > match the end of a string.
> > (Actually, \Z matches the end of a string unless the string ends
> with
> > a \n, it which case it matches
> > just before the \n.)"
> > Programming Ruby 2 Ed, pg 70
> >
> > Acho que me enganei em relação ao ^, confundi com o simbolo usado em
> > Perl para indicar começo
> > de string.
> >
> >
> > 2008/1/28 Ramon Soares <ramong...@gmail.com
> <mailto:ramong...@gmail.com>
> > <mailto:ramong...@gmail.com <mailto:ramong...@gmail.com>>>:
if !fullname.nil?
#removendo acentos com o tr
clean_fullname = fullname.tr 'À-ÖÙ-Üà-öù-ü', ''
if !clean_fullname.match(/\A[A-Za-z \.']+\Z/)
errors.add(:fullname,"Invalid Fullname")
end
end
Tenho que melhorar a regexp ainda, mas já removi os acentos com o tr,
antes de testar.
Tentei usar o Iconv mas não consegui. Achei o ri dele muito incompleto.
Até mais e obrigado pela ajuda!
Rafael Schouery
http://vidageek.net