Ir para conteúdo

POWERED BY:

Arquivado

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

Everton Figueiredo

[Resolvido] Passagem de parêmetro para expressão regular

Recommended Posts

Olá pessoal,

 

estou com dificuldade em passar parêmetra de uma função para expressão regular, segue o código abaixo para dar uma força nessa parte. Como faço para que o parêtro "q" se torne seje substituido pela string fixa "Java" e se torne uma variável?

 

<script type="text/javascript">

function busca(q){

var texto = "Expressões regulares em Javascript para iniciantes!";

//Verificar se no texto recebido existe a expressão: java script:
var RegExp = /\bJava/;

if (texto.search(RegExp) != -1) {
				document.write("Encontrado na posição: "+ texto.search(RegExp));
} else {
				document.write("Não encontrado!");
}

}

</script>

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites
<script type="text/javascript">
function busca( q )
{
var texto = "Expressões regulares em Javascript para iniciantes!";

if (texto.search( q ) != -1)
	document.write("Encontrado na posição: "+ texto.search( q ));
else
	document.write("Não encontrado!");
}
busca( /\bJava/ );
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma coisa de cada vez..

 

<script type="text/javascript">
function busca( q )
{
alert( typeof( q ) );//string
alert( typeof( /\bJava/ ) );//object

var texto = "Expressões regulares em Javascript para iniciantes!";

if (texto.search( q ) != -1)
	document.getElementById('result').innerHTML = 'Encontrado na posição: '+ texto.search( q );
else
	document.getElementById('result').innerHTML = 'Não encontrado!';
}
</script>

<input onkeyup="busca(this.value)" name="q" id="q" type="text" />

<div id="result"></div>

você não notou que o teu document.write, tenta escrever no lugar onde a função é disparada?

ou seja, da forma que você fez, tenta escrever dentro do html da tag input. :lol:

 

o outro problema é esse, o q vai chegar para a função como string, enqnto a ER deve ser um object

Compartilhar este post


Link para o post
Compartilhar em outros sites
use o Responder Azul respondery.png

ou a 'Resposta Rápida'.

 

e qual o problema|dúvida agora ?

testou o script que postei, com a correção do .write() ?

 

 

forçando o objecto RegExp:

<script type="text/javascript">
function id( el ){
return document.getElementById( el );
}
function busca( q )
{	
var seek = new RegExp( '\\b'+q );
id('debug').innerHTML = seek;

var texto = "Expressões regulares em Javascript para iniciantes!";

if (texto.search( seek ) != -1)
	id('result').innerHTML = 'Encontrado na posição: '+ texto.search( seek );
else
	id('result').innerHTML = 'Não encontrado!';
}
</script>

<input type="text" onkeyup="busca(this.value)" name="q" />

<div id="debug"></div>
<div id="result"></div>

:lol:

consegui até aqui cara, para incrementar mais.. dá uma boa pesquisada ai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

leia, por favor:

use o Responder Azul respondery.png

ou a 'Resposta Rápida'.

qndo você clica no [Responder] que fica embaixo do meu post, você faz um quote automático do meu post.

isso suja o tópico, pois você não o fez intencionalmente, e nem com um propósito.

 

Por isso, prefira usar o Responder Azul, ou o Resposta Rápida.

Teste o script que postei aqui, em #6:

http://forum.imasters.com.br/index.php?/topic/421054-passagem-de-paremetro-para-expressao-regular/page__view__findpost__p__1659631

 

acredito que resolve 70% pra você.

Se você precisar incluir modificadores, tem que dar uma boa pesquisada.. eu ainda não consegui pensar em como fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não clique no respl.png que existe abaixo do meu post, pois você fará sem notar um post automático do que eu disse, e assim sujará o tópico sem necessidade.

Prefira o respondery.png, ou a resposta rápida.

 

Pelo que testei funciona sim.

 

digitei:

.a..sc.*

e achou Javascript, na posição 24

sendo que a ER ficou:

/\b.a..sc.*/

 

ps: só não sei como faria para liberar o uso de modificadores

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas se você digitar javascript não vai funcionar pois a palavra está em maiúscula na frase a fazer o teste ai teria que ser algo assim /\b'+q+'/gi

 

o problema é fazer esse expressão regular, fazer com q receba parametro, pq ta com plicado, só dependo disso pra terminar um script.

Compartilhar este post


Link para o post
Compartilhar em outros sites

foi oq eu disse cara, a ER funciona.

 

o problema são os modificadores, foque neles.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pra mim aqui a ER nunca aceita o modificador

 

regular-expressions.info/javascriptexample.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

poste como resolveu, pode ajudar outros usuários.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara na verdade não usei ER, fiz da seguinte forma, na comparação da busca, pego a query que fara a busca tiro a acentuação e também tiro a acentuação do texto onde irá fazer a busca, ai depois de fazer a depuração mostro o texto onde foi buscado normal com acento.

 

Vlw pela força!!

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.