كمبرمج، بعد الانتهاء من التصميم، يجب عليك الاستمرار في تحسين البرنامج بناءً على حالة البرنامج وملاحظات المستخدم، حتى تتمكن من تحسين عملك بشكل مستمر. بعد أن انتهيت من إنشاء منتدى لشبكة أعمال البرمجيات http://www.bizsofts.com ، وجدت أن الأشخاص يحبون دائمًا إضافة العديد من روابط URL المفيدة أو عناوين البريد الإلكتروني إلى منشوراتهم. لم آخذ هذا في الاعتبار عند التصميم، لذا لا يمكن عرض روابط URL أو عناوين البريد الإلكتروني هذه إلا في شكل نص بدلاً من الارتباطات التشعبية، ويجب على الأشخاص الآخرين الذين يتصفحون المنشور أيضًا نسخ روابط URL هذه إلى المتصفح العنوان إلى Outlook للانتقال إلى عنوان الارتباط المقابل أو إرسال بريد إلكتروني إلى عنوان البريد الإلكتروني المقابل.
وبعد أن اكتشفت هذه المشكلة، شرعت في حلها. أول شيء هو البحث عن الكود الحالي في هذا المجال من الإنترنت، وللأسف لم يتم العثور على أي مقالات في هذا المجال بعد البحث المتكرر على محركات البحث. ثم فكرت أنه من الأفضل أن أكتب واحدة بنفسي باستخدام ASP.NET.
المفتاح لعرض الارتباطات التشعبية تلقائيًا هو كيفية تحديد الارتباطات التشعبية بشكل صحيح. ليس هناك شك في أن الطريقة الأكثر فعالية هي استخدام التعبيرات العادية. التعبيرات العادية هي أنماط نصية تتكون من أحرف عادية (مثل الأحرف من a إلى z) وأحرف خاصة (تسمى الأحرف الأولية) وهي تصف نمط مطابقة السلسلة ويمكن استخدامها للتحقق مما إذا كانت السلسلة تحتوي على سلسلة فرعية معينة أو استخراجها سلاسل فرعية تستوفي شروطًا معينة من سلسلة معينة، وما إلى ذلك. تحتوي مكتبة فئات .NET الأساسية على مساحة اسم وسلسلة من الفئات التي يمكنها استغلال قوة التعبيرات العادية بشكل كامل. ويمكنك استخدامها لاكتشاف روابط URL أو عناوين البريد الإلكتروني في النص تلقائيًا. اسمحوا لي أن أشرح بالتفصيل كيفية استخدام ASP.NET (C#) لتحقيق هدفنا خطوة بخطوة:
أولاً، إذا كنت تريد استخدام التعبيرات العادية في ASP.NET (C#)، فيجب عليك تضمين مساحة الاسم System.Text.RegularExpressions:
باستخدام System.Text.RegularExpressions
الخطوة الثانية هي استخدام التعبيرات العادية لتحديد الارتباطات التشعبية لعنوان URL:
Regex urlregex = new Regex(@"(http://([w.]+/?)S*) "،
RegexOptions.IgnoreCase|RegexOptions.Compiled)؛
يستخدم الكود هنا التعبيرات العادية لتحديد عناوين البريد الإلكتروني:
Regex emailregex = new Regex(@"([a-zA-Z_0-9.-]+@[a-zA-Z_0 - 9.-]+.w+)"،
RegexOptions.IgnoreCase|RegexOptions.Compiled)؛
الخطوة الثالثة، عندما يحدد البرنامج الارتباط التشعبي لعنوان URL أو عنوان البريد الإلكتروني، يجب استبدال هذه الارتباطات التشعبية بـ <a href=...>ارتباط تشعبي</a>، وعندها فقط يمكن لهذه الارتباطات سيتم عرض النصوص كروابط. أقوم بتضمينها جميعًا في الوظيفة هنا:
Private void Button1_Click(object sender, System.EventArgs e)
{
سلسلة strContent = InputTextBox.Text؛
Regex urlregex = new Regex(@"(http://([w.]+/?)S*)"،
RegexOptions.IgnoreCase|.RegexOptions.Compiled);
strContent = urlregex.Replace(strContent,
"<a href="" target="_blank"></a>");
Regex emailregex = new Regex(@"([a-zA-Z_0-9.-]+@[a-zA-Z_0-9.-]+.w+)"،
RegexOptions.IgnoreCase|.RegexOptions.Compiled);
strContent = emailregex.Replace(strContent, "<a href=mailto:></a>");
lbContent.Text += "<br>"+strContent;
}
من خلال الخطوات المذكورة أعلاه، يمكنك عرض الارتباطات التشعبية وعناوين البريد الإلكتروني تلقائيًا على صفحات الويب. يمكنك تنزيل الكود المصدري لهذا المثال ومشاهدة التأثير الفعلي على المنتدى على http://www.bizsofts.com . (ملاحظة المؤلف: تم نشر النسخة الإنجليزية من هذه المقالة على CodePoject وCodeGuru)