Vérification balise html en javascript avec des regex

Résolu
julienbasse Messages postés 41 Date d'inscription   Statut Membre Dernière intervention   -  
julienbasse Messages postés 41 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je souhaite actuellement faire une petite vérification d'un formulaire ou l'on doit copier le code d'intégration d'une vidéo, n'étant pas très à l'aise avec les expressions régulières j'ai fais quelques recherches et quelques essais peu concluants ... donc je viens poser mon dilemme en espérant obtenir une petite réponse.
la valeur doit donc commencer par "<iframe" et doit être suivie par plusieurs autres caractères alphanumériques, peu importe le nombre jusqu'a la fin.

j'ai tenté ceci :
if(document.formulaire.urlVidéo.value.search(/^<[iframe]+(.)$/) == -1){
...
}


ou

if(document.coucouv.url.value.search(/^<[iframe]+(.+)?$/) == -1){
...
}

mais bon ça ne marche pas.

j'espère obtenir de l'aide, merci par avance,
julien.
A voir également:

4 réponses

Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Bonjour,

[abc] signifie a ou b ou c. Toi tu voudrais plutôt la chaîne complète iframe. Du coup, pas besoin de t'embêter, mets juste iframe.
< est potentiellement un caractère réservé, cela dépend des langages, en JS je ne l'ai pas en tête. À vérifier.
Ensuite, le « + » derrière iframe signifie « 1 ou plusieurs fois », alors qu'une seule fois est ce que tu recherches.
Je rajoute également un i à la fin pour indiquer que l'expression rationnelle est insensible à la casse (donc iFrame, IFRAME ou iframe fonctionneront)

Essaie donc ça :
(/^<iframe.*$/i)

ou ça, si le premier ne marche pas :
(/^\<iframe.*$/i)

Xavier
0
julienbasse Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour, j'ai testé mais ça n'a pas marché peut être que le chevron pose problème, j'ai essayé de mettre un "." devant ça n'a pas marché non plus merci de votre aide en tout cas !
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Tu pourrais en dire plus sur le « ça n'a pas marché » ?
Donne la valeur exacte du champ que tu as utilisé, par exemple.
0
julienbasse Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
en fait, je demande dans mon formulaire à copier le code d'intégration de la vidéo Youtube si elle est bonne, la bordure de l'input devra être verte sinon, elle sera noire et pour l'instant elle ressort noire.
Merci pour l'aide en tout cas
fonction :
function verifurlv() {
if(document.coucou.url.value == ""){
document.coucouv.url.style.border = "solid 2px black";

}else{
if(document.coucouv.url.value.search(/^<iframe.*$/i) == -1)
{
 
document.coucouv.url.focus();
document.coucouv.url.style.border = "solid 2px black";
return false;
}
else {
 document.coucouv.url.style.border = "solid 2px lightgreen";
 return true;
 }
}
}


Encore merci pour l'aide !
0
flokocha Messages postés 1510 Date d'inscription   Statut Membre Dernière intervention   281
 
Si tu n'es pas trop regardant sur le contenu de la balise en elle-même, tu peux faire quelque chose dans ce genre : /^<iframe[^>]*>.+<\/iframe>$/

Ça te permet de vérifier que la chaine commence bien par <iframe> (avec eventuellement des attributs), qu'elle termine bien par </iframe>, et qu'il y a quelque chose entre les deux.
0
julienbasse Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
en fait voici la fonction ;
function verifurlv() {
if(document.coucou.url.value == ""){
document.coucouv.url.style.border = "solid 2px black";

}else{
if(document.coucouv.url.value.search( /^<iframe[^>]*>.+<\/iframe>$/ ) == -1)
{
 
document.coucouv.url.focus();
document.coucouv.url.style.border = "solid 2px black";
return false;
}
else {
	document.coucouv.url.style.border = "solid 2px lightgreen";
	return true;
	}
}
}


en fait, je demande dans mon formulaire à copier le code d'intégration de la vidéo Youtube si elle est bonne, la bordure de l'input devra être verte sinon, elle sera noire et pour l'instant elle ressort noire.
Merci pour l'aide en tout cas
0
julienbasse Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
je dois par exemple voir que
<iframe width="640" height="360" src="//www.youtube.com/embed/..." frameborder="0" allowfullscreen></iframe>

est bonne
0
flokocha Messages postés 1510 Date d'inscription   Statut Membre Dernière intervention   281
 
alors vu qu'il n'y a rien entre <iframe ...> et </iframe>, mais des attributs obligatoires dans la première balise, c'est cette regexp :
/^<iframe [^>]+><\/iframe>$/

Ou /^<iframe [^>]+>.*<\/iframe>$/ si tu tolères qu'il puisse y avoir quelque chose
0
julienbasse Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
super, ça marche, merci beaucoup !
et merci pour les explications, bonne journée !
0