Frage

Ich habe ein Verzeichnis voller Klassischer ASP Legacy -Code und fast alle Dateien haben etwas Ähnliches wie folgt:

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

Später im Code wird ein JavaScript ausgeführt und erledigt Folgendes:

var x = document.getElementById('driverPayment')

Dies funktioniert gut in IE, aber natürlich funktioniert nirgendwo anders, da kein ID -Attribut definiert ist.

Das Fix ist, die 1770 -Dateien durchzugehen und manuell ein ID -Attribut hinzuzufügen, das mit der Namenseigenschaft für die Eingabe übereinstimmt. Also mach es so:

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

Gibt es eine Möglichkeit, diesen Vorgang mit der unten stehenden Logik zu automatisieren:

  1. Holen Sie sich ein Eingabelement mit einem Namensattribut
  2. Wenn die Eingabe ein ID -Attribut hat, wechseln Sie zum nächsten Eingang
  3. Andernfalls fügen Sie der Eingabe ein ID -Attribut hinzu und geben Sie ihm einen Namen, der dem Wert des Namensattributs entspricht

Ich würde dies gerne für die 1770 klassischen ASP -Dateien tun, die ich habe. Ich benutze sublime Text.

War es hilfreich?

Lösung

Sie können Regex verwenden, um übereinzustimmen. Mein Regex ist nicht großartig, aber das folgende sollte funktionieren. Glücklich, dass andere es verbessern. Ich habe einige Regex von verwendet diese Frage.

Klicken Sie mit der rechten Maustaste auf Projektordner

Wählen Sie die Option "In Ordner finden"

Finden und Ersetzen Optionen, die am unteren Bildschirmrand angezeigt werden. Wählen Sie die Regex -Option (ganz links).

regex-find-and-replace

Eintreten

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

in Find Field

Eintreten

id="driverPayment" name="driverPayment" 

im Feld ersetzen

Klicken Sie auf Ersetzen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top