Jump to content


Photo

Expressão Regular:[resolvido]


  • Faça o login para participar
10 replies to this topic

#1 Mantu

Mantu

    Turista

  • Usuários
  • 31 posts
  • Sexo:Não informado
  • Localidade:São Paulo - SP

Posted 30/06/2006, 15:34

Coisas de newbie...
Tava querendo usar uma expressão regular, por exemplo, que casasse com código de cor.
Pensei que seria apenas algo do tipo ...
...
var regex = /\#[0-9a-fA-F]{6}/;
...
... e verificar assim:
...
if(myString.match(regex))
	...
else
	alert(myString + " não é uma cor válida");
...

Só que acabei descobrindo que o método match ele vai dando match enquanto pode e retorna um array com os matchs que ele encontrou na String... Eu pensava que ele só verificava se match com a String inteira, nem mais nem menos. :(
Por Exemplo, #ffd456 ele "match" só que #475565#44ddff ele match também!!!

Tem alguma maneira de escrever a expressão regular pra eu detectar como válido apenas as Strings que atentdam todas as seguintes características
-tenham exatamente 7 caracteres
-o primeiro caractere é o "#"
-os demais caracteres devem pertencer ao conjunto {0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,A,B,C,D,E,F}

?

Edição feita por: Mantu, 03/07/2006, 08:44.

[]'s
Mantu

Time after time we lose sight of the way. Our causes can't see their effects - Neil Peart

#2 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 30/06/2006, 16:08

Bom, o que você quer já não é javascript, mas pra não perder a viagem:

^# -> verifica se o primeiro caractere é um #

[0-9a-fA-F]{6} -> verifica se são caracteres do conjunto hexadecimal e 6 deles

Veja se consegue montar.
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#3 Klaus

Klaus

    @ ubuntu jaunty

  • Ex-Admins
  • 7924 posts
  • Sexo:Masculino
  • Localidade:127.0.0.1

Posted 30/06/2006, 16:17

A sua expressão poderia ser assim:

var er = /^#[0-9a-z]$/i;
er.test( "STRING-AQUI" );

Klaus Paiva
Conheça também: Taperás

#4 Mantu

Mantu

    Turista

  • Usuários
  • 31 posts
  • Sexo:Não informado
  • Localidade:São Paulo - SP

Posted 30/06/2006, 16:26

bimonti
Creio que há algum engano.... O que exatamente não é javascript? Se for as expressões regulares, acho que tenho que discordar de você. Isto porque um string em javascript tem um metodo que exige como parâmetro uma expressão regular. Cada linguagem (quando o fazem) suportam expressões regulares cada uma a seu modo. Eu sei que em javascript vc escreve o padrão entre um par de "/" e no final, opcionalmente coloca algumas opções (i, g, por exemplo). O meu problema é que eu não estou sabendo usar bem esse recurso... :cry:
Quanto ao lance da cor, foi só um exemplo. Eu gostaria de saber, em javascript como testar o match exato de uma string contra uma determinada expressão regular.

<postado depois da resposta do Klaus>
Muito obrigado Klaus! Era isso mesmo que eu precisava!!!

Edição feita por: Mantu, 30/06/2006, 16:32.

[]'s
Mantu

Time after time we lose sight of the way. Our causes can't see their effects - Neil Peart

#5 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 30/06/2006, 20:34

Entendi mal sua pergunta, achei que você estava com dificuldades em achar uma ER pra situação mostrada. Em todo caso ótimo que resolveu seu problema, fica uma referencia pra você aqui:
http://developer.moz..._Objects:RegExp

Edição feita por: bimonti, 30/06/2006, 20:35.

WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#6 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 28/08/2006, 10:36

Revivendo o tópico para não ter que postar outro :P

Eu to com um problema, minha expressão regular no Javascript não funciona, não entendi a lógica dela ainda O.o

Eu tenho uma sequência de string assim num arquivo de texto:
{alguma coisa}
{alguma coisa}


E quero separar elas numa array, então pensei em usar uma expressão regular com esta lógica:

Me ache tudo que comece com "{" E termine com "}"


Minha expressao regular ficou assim: "/^{\[a-z]+$}/"

Tá correto isso? Se tiver errado, poderiam apontar uma solução ?

Eu to lendo umas documentação mas fico mais confuso ainda usar expressões regulares em conjunto.

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#7 Klaus

Klaus

    @ ubuntu jaunty

  • Ex-Admins
  • 7924 posts
  • Sexo:Masculino
  • Localidade:127.0.0.1

Posted 28/08/2006, 15:49

Bom, sua "lógica" precisa ser mais específica. Por exemplo, você quer que case isso:

oi {que legal né?} Show!}


Ou isso:

oi {que legal né?} Show!}


Note que ambos os casos validam sua lógica:

Me ache tudo que comece com "{" E termine com "}"


Klaus Paiva
Conheça também: Taperás

#8 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 29/08/2006, 09:40

Especifiquei errado então :P

Assim ...

Ache a primeira ocorrência que começe com "{" e a primeira ocorrencia de "}" se achar primeiro a ocorrência de "{"

O.o

Deu pra ententer ?

Eu tenho um conjunto de dados assim

#arquivo.txt

{dado1}
{dado2}
{dado3}
{dado4}


Dae queria a funcao match() do javascript para separar esses dados, que no caso viraria uma array de 4 elementos (eu penso O.o)

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#9 Klaus

Klaus

    @ ubuntu jaunty

  • Ex-Admins
  • 7924 posts
  • Sexo:Masculino
  • Localidade:127.0.0.1

Posted 29/08/2006, 12:14

Já pensou em dar split por quebra de linha e depois, só remover o primeiro e o último caracter de cada parte?
Klaus Paiva
Conheça também: Taperás

#10 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 29/08/2006, 17:15

Tem uns esquemas de ER que ele casa uma expressão de outra for verdadeira, não lembro se o JavaScript tem isso também, vou verificar pra ver se tem como ajudar.
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#11 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 30/08/2006, 09:19

Já pensou em dar split por quebra de linha e depois, só remover o primeiro e o último caracter de cada parte?


Já está feito usando isso :)

É que eu queria ver somente como ficaria com expressão regular, mas nao considgo gerar uma sentença que capture esses dados.

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq