Vérification balise html en javascript avec des regex
Résolu/Fermé
julienbasse
Messages postés
41
Date d'inscription
mardi 29 mai 2012
Statut
Membre
Dernière intervention
23 décembre 2014
-
Modifié par julienbasse le 7/03/2014 à 12:15
julienbasse Messages postés 41 Date d'inscription mardi 29 mai 2012 Statut Membre Dernière intervention 23 décembre 2014 - 7 mars 2014 à 18:34
julienbasse Messages postés 41 Date d'inscription mardi 29 mai 2012 Statut Membre Dernière intervention 23 décembre 2014 - 7 mars 2014 à 18:34
A voir également:
- Vérification balise html en javascript avec des regex
- Telecharger javascript - Télécharger - Langages
- Editeur html - Télécharger - HTML
- Balise br ✓ - Forum HTML
- Espace en html - Astuces et Solutions
- Saut de lignes sans <br/> ✓ - Forum Webmastering
4 réponses
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
Modifié par Reivax962 le 7/03/2014 à 13:45
Modifié par Reivax962 le 7/03/2014 à 13:45
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 :
ou ça, si le premier ne marche pas :
Xavier
[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
julienbasse
Messages postés
41
Date d'inscription
mardi 29 mai 2012
Statut
Membre
Dernière intervention
23 décembre 2014
7 mars 2014 à 14:52
7 mars 2014 à 14:52
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 !
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
7 mars 2014 à 15:08
7 mars 2014 à 15:08
Tu pourrais en dire plus sur le « ça n'a pas marché » ?
Donne la valeur exacte du champ que tu as utilisé, par exemple.
Donne la valeur exacte du champ que tu as utilisé, par exemple.
julienbasse
Messages postés
41
Date d'inscription
mardi 29 mai 2012
Statut
Membre
Dernière intervention
23 décembre 2014
Modifié par julienbasse le 7/03/2014 à 16:51
Modifié par julienbasse le 7/03/2014 à 16:51
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 :
Encore merci pour l'aide !
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 !
flokocha
Messages postés
1510
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
10 octobre 2015
281
7 mars 2014 à 15:37
7 mars 2014 à 15:37
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.
Ç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.
julienbasse
Messages postés
41
Date d'inscription
mardi 29 mai 2012
Statut
Membre
Dernière intervention
23 décembre 2014
7 mars 2014 à 16:48
7 mars 2014 à 16:48
en fait voici la fonction ;
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
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
julienbasse
Messages postés
41
Date d'inscription
mardi 29 mai 2012
Statut
Membre
Dernière intervention
23 décembre 2014
7 mars 2014 à 16:53
7 mars 2014 à 16:53
je dois par exemple voir que
est bonne
<iframe width="640" height="360" src="//www.youtube.com/embed/..." frameborder="0" allowfullscreen></iframe>
est bonne
flokocha
Messages postés
1510
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
10 octobre 2015
281
Modifié par flokocha le 7/03/2014 à 18:03
Modifié par flokocha le 7/03/2014 à 18:03
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
/^<iframe [^>]+><\/iframe>$/
Ou /^<iframe [^>]+>.*<\/iframe>$/ si tu tolères qu'il puisse y avoir quelque chose
julienbasse
Messages postés
41
Date d'inscription
mardi 29 mai 2012
Statut
Membre
Dernière intervention
23 décembre 2014
Modifié par julienbasse le 7/03/2014 à 18:35
Modifié par julienbasse le 7/03/2014 à 18:35
super, ça marche, merci beaucoup !
et merci pour les explications, bonne journée !
et merci pour les explications, bonne journée !