সহজবোধ্য রাখো! আপনার কাছে যা থাকতে পারে তার চেয়ে আপনার যা নেই তা বলুন :)
উপরে উল্লিখিত হিসাবে, ইউআরএলগুলি বেশ জটিল হতে পারে, বিশেষত '?' এর পরে, এবং সেগুলি সবই 'www' দিয়ে শুরু হয় না। যেমনmaps.bing.com/something?key=!"£$%^*()&lat=65&lon&lon=20
সুতরাং, একটি জটিল রেজেক্সের পরিবর্তে যা সমস্ত প্রান্তের কেসগুলি পূরণ করে না, এবং এটি রক্ষণাবেক্ষণ করা শক্ত হবে, কীভাবে এই সরলতম সম্পর্কে, যা অনুশীলনে আমার পক্ষে ভাল কাজ করে।
ম্যাচ
http(s):// (anything but a space)+
www. (anything but a space)+
যেখানে 'কিছু' আছে [^'"<>\s]
... মূলত একটি লোভী মিল, আপনাকে কোনও স্থান, উদ্ধৃতি, কোণ বন্ধনী বা লাইনের শেষের সাথে মিলিত করে
এছাড়াও:
এটি ইতিমধ্যে ইউআরএল ফর্ম্যাটে নেই কিনা তা পরীক্ষা করে দেখুন, যেমন পাঠ্যটি এতে রয়েছে href="..."
বাsrc="..."
Ref = nofollow যোগ করুন (উপযুক্ত হলে)
এই সমাধানটি উপরে বর্ণিত লাইব্রেরিগুলির মতো "ভাল" নয়, তবে অনেক সরল এবং বাস্তবে ভালভাবে কাজ করে।
if html.match( /(href)|(src)/i )) {
return html; // text already has a hyper link in it
}
html = html.replace(
/\b(https?:\/\/[^\s\(\)\'\"\<\>]+)/ig,
"<a ref='nofollow' href='$1'>$1</a>"
);
html = html.replace(
/\s(www\.[^\s\(\)\'\"\<\>]+)/ig,
"<a ref='nofollow' href='http://$1'>$1</a>"
);
html = html.replace(
/^(www\.[^\s\(\)\'\"\<\>]+)/ig,
"<a ref='nofollow' href='http://$1'>$1</a>"
);
return html;
URL regexp from Component
মন্তব্য করা হয়নি, এটি কী করছে তার কিছু ব্যাখ্যা সহায়ক হবে।Autolinker.js
খুব ভাল মন্তব্য করা হয় এবং পরীক্ষা আছে।urlize.js
লাইব্রেরিতে লিঙ্ক Vebjorn Ljosa এর উত্তর এছাড়াও featureful এবং ভালভাবে রক্ষণাবেক্ষণ দেখায় যদিও এটি পরীক্ষা নেই।