عند كتابة برنامج مصغر هذه الأيام ، تحتاج إلى استخدام تعبيرات منتظمة لمطابقة عنوان عنوان URL في النص الذي أدخله المستخدم ، ثم استبدال عنوان عنوان URL برابط يمكنك النقر عليه. أعتقد أن هذا هو ما تستخدمه غالبًا في معالجة التحقق. هنا سأقدم تعبيرًا كاملاً نسبيًا قمت بدمجه:
نسخة الكود كما يلي:
var url = /(HTTPS؟://////////// /)؟ (///)//////// Ocalhost) (: [0-9]+)؟
يمكن أن يتطابق هذا التعبير مع عناوين عنوان URL لـ HTTP و HTTPS و FTP و FTPs وعناوين IP. لا يزال مثاليًا تمامًا لمطابقة عنوان عنوان URL. باستخدام هذا التعبير ، كتبت وظيفتين صغيرتين لاستبدال عنوان عنوان URL لرسالة المستخدم برابط قابل للنقر. لا يوجد شيء صعب للغاية. إنها لاستخدام وظيفة JavaScript Reply () لتنفيذ عنوان URL البديل للربط:
نسخة جافا سكريبت:
نسخة الكود كما يلي:
/**
* نسخة جافا سكريبت
* تحويل عنوان عنوان URL إلى رمز ارتباط كامل A.
*/
var replisturltoLink = function (text) {
text = text.replace (url ، function (url) {
var urltext = url ؛
if (! url.match ('^https ؟: ////')) {
url = 'http: //' + url ؛
}
إرجاع '' + urltext + '' ؛
}) ؛
إعادة النص ؛
} ؛
إصدار PHP:
نسخة الكود كما يلي:
/**
* يتم تعديل إصدار PHP بناءً على رمز Silva
* تحويل عنوان عنوان URL إلى رمز ارتباط كامل A.
*/
/** ==============================================================
الاسم: reply_urltoLink ()
الإصدار: 1.0
المؤلف: J de Silva
الوصف: إرجاع باطل ؛ مقابض التحويل
عناوين URL في روابط قابلة للنقر فوق سلسلة.
النوع: وظائف
=========================================================*/
وظيفة استبدال _urltoLink ($ text) {
// الاستيلاء على أي شيء يشبه عنوان URL ...
$ urls = array () ؛
// بناء الأنماط
$ scheme = '(https؟/: //// | ftps؟/: ////)؟' ؛
$ www = '([/w]+/.)' ؛
$ local = 'localhost' ؛
$ ip = '(/d {1،3 )/./d {1،3 )/./d {1،3 )/./d {1،3})' ؛
$ name = '([/w0-9]+)' ؛
$ tld = '(/w {2،4})' ؛
$ port = '(: [0-9]+)؟' ؛
$ the_rest = '(//؟( Budap/w#!
$ pattern = $ scheme. '('. $ ip. $ port. '|'. $ www. $ name. $ tld. $ port. '
$ pattern = '/'.$pattern.'/is' ؛
// احصل على عناوين URL
$ c = preg_match_all (نمط $ ، نص $ ، $ m) ؛
إذا ($ c) {
$ urls = $ m [0] ؛
}
// استبدل جميع عناوين URL
إذا (! فارغة ($ urls)) {
foreach ($ urls as $ url) {
$ pos = strpos ('http/: ////' ، $ url) ؛
if (($ pos && $ pos! = 0) ||! $ pos) {
$ fullurl = 'http: //'.
} آخر {
$ fullurl = $ url ؛
}
$ link = ''. $ url. '' ؛
$ text = str_replace ($ url ، $ link ، $ text) ؛
}
}
إرجاع النص $ ؛
}