Domanda

Ho una directory piena di ASP classico Codice legacy e quasi tutti i file hanno qualcosa di simile a questo:

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

Quindi più avanti nel codice, alcuni JavaScript sono in esecuzione e fanno quanto segue:

var x = document.getElementById('driverPayment')

Funziona bene in IE, ma ovviamente non funziona da nessun'altra parte perché non esiste un attributo ID definito.

La correzione è passare attraverso i file 1770 e aggiungere manualmente un attributo ID che corrisponde alla proprietà Nome sull'ingresso. Quindi fallo così:

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

C'è un modo per automatizzare questo processo utilizzando la logica di seguito:

  1. Ottieni l'elemento di input con un attributo Nome
  2. Se l'input ha attributo ID, spostati sull'input successivo
  3. Altrimenti Aggiungi un attributo ID all'input e dagli un nome corrispondente al valore dell'attributo nome

Mi piacerebbe farlo per i file ASP classici del 1770 che ho. Sto usando il testo sublime.

È stato utile?

Soluzione

Puoi usare Regex per abbinare. Il mio regex non è eccezionale ma quanto segue dovrebbe funzionare. Felice per gli altri di migliorarlo. Ho usato un po 'di regex da questa domanda.

Fare clic con il pulsante destro del mouse sulla cartella del progetto

Scegli l'opzione "Trova nella cartella"

Trova e sostituire le opzioni appaiono nella parte inferiore dello schermo. Seleziona l'opzione Regex (estrema sinistra).

regex-find-and-replace

accedere

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

In Find Field

accedere

id="driverPayment" name="driverPayment" 

nel campo di sostituzione

Fare clic su Sostituisci

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top