Función de búsqueda y reemplazo de Jquery

var ara = 'facebook.com';

 $( "div:contains('"+ara+"')" ).each(function(){
     var ekle  = ' aaaaaaa >| ';
        veri = $(this).html();
        islenmis = veri.split(ara);

        if(islenmis[0]=='http://www.'||islenmis[0]=='https://www.'||islenmis[0]=='http://'||islenmis[0]=='https://'||islenmis[0]=='http://'||islenmis[0]=='http://'+regex(.*)){
         $(this).addClass('newClass');
        } 
     }) 

¿Cómo puedo encontrar la detección de can be regex? ¿Cómo lo haré?

<span>https://tr-tr.facebook.com</span>
<span>http://en-en.facebook.com</span>
<span>http://anysite.com/facebook.com</span>(no want find this result)
<span>https://www.facebook.com</span>

preguntado el 16 de septiembre de 13 a las 00:09

Cuando repita cada elemento, use .html() para obtener el texto. Luego simplemente pruebe el texto para ver si coincide con su expresión regular. -

1 Respuestas

Puede usar expresiones regulares, pero en este caso tendrá que escapar del punto en el nombre, ya que es un carácter especial en una expresión regular (en realidad, seguirá funcionando sin eso, pero es mejor hacerlo en lugar de quedar atrapado con el caso extraño una vez).

La más simple es una expresión para hacer coincidir el '//', luego hacer coincidir cualquier cosa que no sea un '/' ([^/]*), seguido de la cadena de destino, así:

re = new RegExp("//[^/]*facebook\.com");

Probablemente deberíamos hacer coincidir el 'http' / 'https' inicial por si acaso, voy a asumir que siempre está al comienzo de la línea, así que agregue una coincidencia para el comienzo de la línea (^), entonces http, luego cero o uno s caracteres (s?), luego el colon.

Si desea escapar de la cadena entrante (para que pueda especificar el sitio en una variable), pruebe esta solución aquí: Método simple de jQuery / javascript para escapar caracteres especiales en una cadena para expresiones regulares

Una solución codificada para facebook.com se vería así:

$( "span:contains('facebook.com')" ).each(function(){

    re = new RegExp("^https?://[^/]*facebook\.com");

    if(re.test($(this).html())) {
        // Matched, do something ...
        console.log("MATCH: ",$(this));
    } else { 
        // Not matched, do something else (maybe) ... 
        console.log("NOMATCH: ", $(this));
    }

});

contestado el 23 de mayo de 17 a las 11:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.