Partage
  • Partager sur Facebook
  • Partager sur Twitter

Récupérer et remplacer tous les numéros d'une page

Regex on body content

3 octobre 2019 à 14:26:10

Bonjour,

J'ai créé une expression regex pour récupérer toutes les formes de numéros français.

J'ai besoin de trouver dans une page tous les numéros de téléphone avec ma regex et les remplacer. Or je bloque totalement sur comment parcourir tous mon dom avec ma regex :/

La regex en question : /^(?:(?:\+|00)33[\s.-]{0,3}(?:\(0\)[\s.-]{0,3})?|0)[1-9](?:(?:[\s.-]?\d{2}){4}|\d{2}(?:[\s.-]?\d{3}){2})$/

Merci d'avance :)

  • Partager sur Facebook
  • Partager sur Twitter

Pensez a mettre +1 aux messages qui vous ont aidé et mettre résolu quand cela l'est.

3 octobre 2019 à 14:52:41

bonjour pour récupéré tous le document dans une chaîne de texte :

let DOMStr = document.body.innerHTML ;

pour parcourir le DOM noeud par noeud :

const allNodes = document.body.childNodes;

[...allNodes].map( node => {

  // ici 'node' représente l'élément actuel du parcour

  const textNode = node.textContent ;
} );




  • Partager sur Facebook
  • Partager sur Twitter

suggestion de présentation.

3 octobre 2019 à 14:54:23

Bonjour Samuel, du coup pour que je puisse remplacer ce que je récupère dans avec ma regex, je pense que je dois passer par la méthode des nodes
  • Partager sur Facebook
  • Partager sur Twitter

Pensez a mettre +1 aux messages qui vous ont aidé et mettre résolu quand cela l'est.

3 octobre 2019 à 15:38:36

oui je pense que ces plus facile mais cette regex :
/^(?:(?:\+|00)33[\s.-]{0,3}(?:0[\s.-]{0,3})?|0)[1-9](?:(?:[\s.-]?\d{2}){4}|\d{2}(?:[\s.-]?\d{3}){2})$/

test si il existe le pattern du numéro de téléphonesans texte autour

"+330102030405" va matcher mais

"tel : +330102030405" ne match pas à cause du texte qui précéde le pattern

il y à cette application qui permet de tester des regexp en live : regex101.com

sinon un truc qui à l'air de marché serait de retiré les contraintes de le regex :

/(?:(?:\+|00)33[\s.-]{0,3}(?:0[\s.-]{0,3})?|0)[1-9](?:(?:[\s.-]?\d{2}){4}|\d{2}(?:[\s.-]?\d{3}){2})/

( la même regex mais sans les contraintes de début et de fin )

cette fois la regex detect un pattern même s'il existe du texte autour

"tel : +330102030405 , lorem ipsum ..." , va matcher

  • Partager sur Facebook
  • Partager sur Twitter

suggestion de présentation.

3 octobre 2019 à 15:49:19

ah yep ! Thanksssss 

Je te fais un retour et posterai mon code si j'y suis arrivée :)

  • Partager sur Facebook
  • Partager sur Twitter

Pensez a mettre +1 aux messages qui vous ont aidé et mettre résolu quand cela l'est.