2017-05-20 1 views
0

En utilisant pour vérifier si regex la chaîne a un lienjQuery si la chaîne contient un lien retour de lien valeur

<p>Random text <a href="/landing.html">click here</a></p> 
<p>Another paragraph without href</p> 

et si vrai retour de la chaîne et utilisez str.find("a").attr("href"); pour obtenir la valeur href.

var str = $('p').html(); 
if(new RegExp("([a-zA-Z0-9]+://)?([a-zA-Z0-9_]+:[a-zA-Z0-9_][email protected])?([a-zA-Z0-9.-]+\\.[A-Za-z]{2,4})(:[0-9]+)?(/.*)?").test(str)) { 
    console.log(str); 
    var href = str.find("a").attr("href"); 
} 

Cependant, erreur renvoie CONSOLE.LOG

Uncaught TypeError: str.find is not a function

Vérifiez Link Jsfiddle à l'avance

Répondre

0

Le problème avec le code ci-dessus vous est UTILISIEZ méthode .html() parce que html renvoie la partie html et non le dom objet. Vous devez utiliser l'objet dom selector pour trouver l'ancre. Mettez à jour votre code ci-dessous

var str = $('p'); 
console.log(str) 
if(new RegExp("([a-zA-Z0-9]+://)?([a-zA-Z0-9_]+:[a-zA-Z0-9_][email protected])?([a-zA-Z0-9.-]+\\.[A-Za-z]{2,4})(:[0-9]+)?(/.*)?").test(str.html())) { 
    console.log(str); 
    var href = str.find("a").attr("href"); 
    console.log(href) 
} 

Vérifiez le violon updated fiddle

+0

Merci beaucoup, Agam. Fonctionne comme un charme – Shiro

+0

Heureux que cela fonctionne pour vous :) –

0

changement
var href = str.find("a").attr("href");
pour
var href = $('p').find("a").attr("href");

Vous obtenez cette erreur parce que vous essayez d'appeler la méthode « trouver "dans une" chaîne ", qui n'a pas cette méthode.

var str = $('p').html(); 
 
if(new RegExp("([a-zA-Z0-9]+://)?([a-zA-Z0-9_]+:[a-zA-Z0-9_][email protected])?([a-zA-Z0-9.-]+\\.[A-Za-z]{2,4})(:[0-9]+)?(/.*)?").test(str)) { 
 
\t console.log(str); 
 
\t var href = $('p').find("a").attr("href"); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p>Random text <a href="/landing.html">click here</a></p> 
 
<p>Another paragraph without href</p>

+0

Merci Pablo. Cela fonctionne aussi. – Shiro