Ir para conteúdo

POWERED BY:

Arquivado

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

Lucas Peperaio

Navegador que não suporte RegExp

Recommended Posts

Estou enfrentando um problema inusitado

Tenho uma ER, que funciona perfeitamente, mas em alguns navegadores pelos quais os meus usuários acessam o meu site, não funcionam.

É gravado no banco de dados tudo errado, como se a ER nem existisse.

 

Existe algum navegador que não suporte ERs? tipo algum mais antigo, ou para linux, mac sei lá?

segue um exemplo de ER:

 

_u = "http://www.fileserve.com/file/UagS95k?/daolnwod/gro.seiresesemlifraxiab.www//:ptth";
if(download = /(fileserve|uploadstation)\.com\/(file|list)\/[0-9A-Z]{7}/gi.exec(_u)){
  //a variavel download deveria ter este valor: http://www.fileserve.com/file/UagS95k
}
//mas em raros casos ele fica assim: 
//http://www.fileserve.com/file/UagS95k?/daolnwod/gro.seiresesemlifraxiab.www//:ptth
//como se nunca tivesse passado pela ER

existe algo de errado no meu código?

edit: acabei de testar no maldito IE7, nele está acontecendo o problema... =(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Experimente esse aqui:

 

<script language="javascript">
var regExp = new RegExp('(fileserve.com|uploadstation.com)/(file|list)/[A-Za-z0-9-]+');
var myString = 'http://www.fileserve.com/file/UagS95k?/daolnwod/gro.seiresesemlifraxiab.www//:ptth';
alert(myString.match(regExp)[0]);
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então amigo, eu entendo que desta forma tbm funciona, mas neste caso, os modificadores g(pesquisa global) e i(insensitvo) não deveriam casar a string maiuscula ou minuscula?

...:(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim... mais da sua forma... funciona assim:

 

<script type="text/javascript">
_u = "http://www.fileserve.com/file/UagS95k?/daolnwod/gro.seiresesemlifraxiab.www//:ptth";
download = /(fileserve|uploadstation)\.com\/(file|list)\/[0-9A-Z]{7}/gi.exec(_u);

alert(download[0]);
</script>

 

É dessa forma que seria bom para você?

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo, eu acho que você nao me entendeu...

o código está certo, tanto o que eu postei, tanto o que você postou, mas a minha pergunta inicial era se existe algum navegador que não suporte ERs, ou tem problemas com modificadores (tais como o "g" e o "i").

 

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites
a minha pergunta inicial era se existe algum navegador que não suporte ERs, ou tem problemas com modificadores (tais como o "g" e o "i").

não. Pelo menos de todos que conheço, não existe 'esse problema'.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok galera, ainda estou sem entender porque alguns links são gravados no meu banco de dados daquela forma incorreta, como se a ER nao existisse.

O usuário deve estar usando um navegador bem antigo, é a único motivo plausível que eu penso agora.

Uma visão geral do problema:

 

Minha RegExp:

/(fileserve|uploadstation)\.com\/(file|list)\/[0-9A-Z]{7}/gi

A String:

http://www.fileserve.com/file/D6UmwcG?/daolnwod/moc.bvmrsemlifdaolnwod.www//:ptth

 

O resultado lógico disso seria:

fileserve.com/file/D6UmwcG

 

mas as vezes (1:1000) é gravado no banco assim:

http://www.fileserve.com/file/D6UmwcG?/daolnwod/moc.bvmrsemlifdaolnwod.www//:ptth

 

Sendo que todo link passa por esta validação de string

Compartilhar este post


Link para o post
Compartilhar em outros sites

e um navegador sem suporte a javascript ?

 

faça um log, e descubra quais navegadores estão usando o teu site.

Compartilhar este post


Link para o post
Compartilhar em outros sites

William, agora eu não entendo mais hauheuahuaea

olha isso:

 

Essa é a imagem do meu painel, eu fiz como você falou, passei a armazenar no banco o IP do usuário e o seu navegador / SO

 

1.jpg

 

Dois usuários, usando o mesmo navegador, com um link praticamente igual, com resultados diferentes!

E o mais impressionante, o registro 336.089 e o registro 336.092 são do mesmo usuário, ele esta usando o firefox 3.6.17. Na primeira vez a Expressão regular nao funcionou, na segunda milagrosamente sim!

 

Esta é a ER para o megaupload

/megaupload\.com\/[a-z]{0,2}\/?\?[a-z]{1}=[a-z0-9A-Z]{6,8}/

casa com:

http://www.megaupload.com/pt/?d=45454545
http://www.megaupload.com/en/?d=45454545
http://www.megaupload.com/?d=45454545
http://www.megaupload.com/en/?f=45454545

 

É a primeira vez que eu vejo um erro assim

;'(

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.