Ir para conteúdo

POWERED BY:

Arquivado

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

Lucas Peperaio

Classes Posix em RegEx Javascript

Recommended Posts

Estou a testar um script em JS, e notei que as classes POSIX não funcionam, sempre dão false...

ex:

isto funciona:
/[A-Z0-9a-z]/

isto não
/[[:alnum:]]/

 

a mesma coisa são para todas as outras classes...sabem me dizer se o javascript não suporta POSIX?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desconheço, nunca vi, dou 99.9% que não é possivel, fiz testes diversos aqui e não foi com Posix.

 

Para o seu caso eu sugiro utilizar o seguinte o "\w"

 

<script>
var verificador = "a";
var RegExp = /\w/;
alert(RegExp.test(verificador) + "\n\n" + "Verificado: " + verificador);
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

A razão pela qual eu quero usar as classes POSIX em JS, é que as mesmas permitem a inclusão de caracteres acentuados no "casamento" da RegEx. Ou seja, um /[A-Z,a-z]/ não encontra caracteres acentuados, já /[[:upper:][:lower:]]/ ou simplesmente /[[:alpha:]]/ sim, encontra áéíóúàèìòùâêôãõúüçñÁÉÍÓÚÀÈÌÒÙÂÊÔÃÕÚÜÇÑ. As POSIX conseguem indentificar a localidade do sistema (Brasil), e sabe interpretar corretamente.

 

ex:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>RegExp - Testes</title>
<script type="text/javascript">
string = "áéíóú";
RegExp = /[a-z]/;
alert(RegExp.test(string));
</script>
</head>

<body>
</body>
</html>

 

resultado = falso

:(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça asssim...

 

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script>
var verificador = "áÉíóú";
var RegExp = /^[a-zA-ZáéíóúàèìòùâêôãõúüçñÁÉÍÓÚÀÈÌÒÙÂÊÔÃÕÚÜÇÑ\-\'\s]+$/;
alert(RegExp.test(verificador) + "\n\n" + "Verificado: " + verificador);
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

é o jeito...o legal das posix é que nos EUA, ela não procura caracteres acentuados..pois lá não se usa acentos

fazer o quê, todas as outras linguagens evoluem, incluem módulos, e eu só vejo o javascript ficar para trás..aff

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui diminuir e deixar exatamente como você esta querendo e essa é a maneira correta de usar, pois esse é o code em ASCII da expressão, melhor do que isso só se vier com o javascirpt 20.0

 

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script>
var verificador = "Ámém";
var RegExp = /[a-zA-Z0-9]/;
alert(RegExp.test(verificador) + "\n\n" + "Verificado: " + verificador);
</script>

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.