Ce regex vient de Atwood et est utilisé pour filtrer les balises d'ancrage avec autre chose que le href et un titre:Comment puis-je corriger cette regex pour autoriser une chaîne spécifique?
<a\shref="(\#\d+|(https?|ftp)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+)"(\stitle="[^"]+")?\s?>
J'ai besoin pour permettre h attribut supplémentaire qui correspond spécifiquement: target = « _ blank ». Donc l'adresse suivante devrait être autorisé:
<a href="http://www.google.com" target="_blank">
J'ai essayé de changer le modèle de ceux-ci:
<a\shref="(\#\d+|(https?|ftp)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+)"(\stitle="[^"]+")(\starget="_blank")?\s?>
<a\shref="(\#\d+|(https?|ftp)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+)"(\stitle="[^"]+")(\starget=\"_blank\")?\s?>
Il est clair que je ne sais pas très bien regex. Comment le modèle devrait-il être ajusté pour permettre la cible vide et aucune autre cible?
Vous ne devriez pas utiliser regex pour analyser HTML: http://stackoverflow.com/questions/1732348/regex-match -open-tags-except-xhtml-self-contained-tags/1732454 # 1732454 –
Pourquoi c'est certainement une réponse intéressante, il semble un peu idiot de le prendre littéralement et dans tous les cas. Ce que je l'utilise pour est une routine simple d'aseptisation destinée uniquement à assurer quelques balises de base sont autorisés. Regex semble certainement à la hauteur de cette tâche même si je ne le suis pas. ;) –