Question

J'ai un répertoire plein de ASP classique Code hérité, et presque tous les fichiers ont quelque chose de similaire:

<input type="hidden" name="driverPayment" value="<% =driverPayment %>">

Puis plus tard dans le code, un javascript est en cours d'exécution et fait ce qui suit:

var x = document.getElementById('driverPayment')

Cela fonctionne bien dans IE, mais bien sûr ne fonctionne nulle part ailleurs car aucun attribut ID n'est défini.

Le correctif consiste à passer par les fichiers 1770 et à ajouter manuellement un attribut ID qui correspond à la propriété du nom sur l'entrée. Alors faites-le comme ça:

<input type="hidden" name="driverPayment" id="driverPayment" value="<% =driverPayment %>">

Existe-t-il un moyen d'automatiser ce processus en utilisant la logique ci-dessous:

  1. Obtenez l'élément d'entrée avec un attribut de nom
  2. Si l'entrée a un attribut d'identification, passez à la prochaine entrée
  3. Else Ajouter un attribut ID à l'entrée et lui donner un nom correspondant à la valeur de l'attribut de nom

Je voudrais le faire pour les fichiers ASP classiques de 1770 que j'ai. J'utilise du texte sublime.

Était-ce utile?

La solution

Vous pouvez utiliser Regex pour correspondre. Mon regex n'est pas génial mais ce qui suit devrait fonctionner. Heureux pour les autres de l'améliorer. J'ai utilisé des exploits de l'expression cette question.

Dossier de projet cliquez avec le bouton droit

Choisissez l'option "Rechercher dans le dossier"

Les options de recherche et de remplacement apparaissent en bas de l'écran. Sélectionnez l'option Regex (à l'extrême gauche).

regex-find-and-replace

Entrer

<(?:input)\s+(?=[^>]*\bname\s*=)(?![^>]*\bid\s*=)[^>]*>?(name="driverPayment")

dans le champ de recherche

Entrer

id="driverPayment" name="driverPayment" 

dans le champ de remplacement

Cliquez sur Remplacer

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top