سؤال

لدي دليل مليء ASP الكلاسيكية الرمز القديم ، وجميع الملفات تقريبًا لديها شيء مشابه لهذا:

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

ثم في وقت لاحق في الكود ، يتم تشغيل بعض JavaScript ، وفعل ما يلي:

var x = document.getElementById('driverPayment')

هذا يعمل بشكل جيد في IE ، ولكن بالطبع لا يعمل في أي مكان آخر لأنه لا يوجد سمة معرف محددة.

يهدف الإصلاح إلى المرور عبر ملفات 1770 وإضافة سمة معرف يدويًا تتطابق مع خاصية الاسم في الإدخال. لذا اجعلها مثل ذلك:

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

هل هناك طريقة يمكنني من خلالها أتمتة هذه العملية باستخدام المنطق أدناه:

  1. احصل على عنصر الإدخال مع سمة الاسم
  2. إذا كان للإدخال سمة معرف ، انتقل إلى الإدخال التالي
  3. وإلا إضافة سمة معرف إلى الإدخال ، واعطها اسمًا يطابق قيمة سمة الاسم

أرغب في القيام بذلك لملفات ASP الكلاسيكية 1770 التي لدي. أنا أستخدم النص السامي.

هل كانت مفيدة؟

المحلول

يمكنك استخدام Regex لمطابقة. regex الخاص بي ليس رائعا ولكن ما يلي يجب أن يعمل. سعيد للآخرين لتحسينه. لقد استخدمت بعض regex من هذا السؤال.

انقر بزر الماوس الأيمن على مجلد المشروع

اختر خيار "البحث في المجلد"

ابحث عن الخيارات واستبدالها تظهر في أسفل الشاشة. حدد خيار Regex (أقصى اليسار).

regex-find-and-replace

يدخل

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

في Find Field

يدخل

id="driverPayment" name="driverPayment" 

في استبدال الحقل

انقر فوق استبدال

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top