جافا سكريبت عنوان URL النص العادي
-
01-10-2019 - |
سؤال
أحاول البحث عن سلاسل قديمة عادية عن عناوين URL التي تبدأ بـ HTTP ، ولكن يبدو أن كل Regex لا يبدو أنه يعمل في JavaScript ولا يمكنني العثور على مثال على ذلك في JavaScript.
هذا هو الشخص الذي أحاول استخدامه من هنا و هنا:
var test = /\b(?:(?:https?|ftp|file)://www\.|ftp\.)[-A-Z0-9+&@#/%=~_|$?!:,.]*[A-Z0-9+&@#/%=~_|$]/;
لكن عندما أحاول تشغيله ، أحصل على "رمز غير متوقع |" الأخطاء.
المحلول
حسنًا ، يبدو أن التعليق لا يكفي ، ويصعب العثور على إجابة كاملة. أعيد كتابة كامل regexp: (تم اختباره ، يعمل بشكل جيد)
var test = /\b(?:(?:https?|ftp|file):\/\/www\.|ftp\.)[-A-Z0-9+&@#\/%=~_|$?!:,.]*[A-Z0-9+&@#\/%=~_|$]/i;
ال i
في النهاية يعني "تجاهل الحالة" ، لذلك من الضروري لهذا regexp.
نصائح أخرى
أنت تستخدم /
كـ Regex Delimiter الخاص بك ، وتستخدم أيضًا /
داخل regex (قبل www) ، لذلك ينتهي Regex فعليًا بعد الأول / قبل www. تغييره إلى:
var test = /\b(?:(?:https?|ftp|file):\/\/www\.|ftp\.)[-A-Z0-9+&@#/%=~_|$?!:,.]*[A-Z0-9+&@#/%=~_|$]/;
^^^^ escape here
لا تنتمي إلى StackOverflow