سلام دوستان
من یک لیبل متن دارم حالا تو این لیبل چند تا ادرس وب هست چیکار کنم که موقع اجرا این ادرس ها تبدیل به لینک بشن
یعنی مثلا در متن زیر divar.ir جوری بشه که کاربر روش بتونه کلیک بکنه و سایتش بازبشه
سایت divar.ir عالی است
سلام دوستان
من یک لیبل متن دارم حالا تو این لیبل چند تا ادرس وب هست چیکار کنم که موقع اجرا این ادرس ها تبدیل به لینک بشن
یعنی مثلا در متن زیر divar.ir جوری بشه که کاربر روش بتونه کلیک بکنه و سایتش بازبشه
سایت divar.ir عالی است
سلام
اگه نمیخواین توی متنتون http استفاده بشه به عنوان آدرس و همین divar.ir باشه ....
باید .ir و .com و .net و... رو به عنوان یه کلید در نظر بگیری .
توی متنت جستجو کنی این کلید ها رو وفتی بهش رسید تبدیلش کنی به یه لینک .
روش های مختلفی هست که این کار رو کنی مثلا بیای یه آرایه از نوع رشته تعریف کنی ، بعد متن رو بریزی توی اون آرایه split رو هم بر اساس space بذاری
حالا شما یه آرایه داری که تمامی کلمات توی اون هست
array[0] = سایت
array[1] = divar.ir
array[2] = عالی
array[3] = است
حالا باید توی تمام آرایه ها چک کنی اگه همون کلیدهایی که گفتم داره رو یه Replace بزنی :
strlink = "<a href={Link}>{Link}</a>";
array[1] = Replace(strlink ,"{Link}",array[1] );
بعد آرایه رو به هم بچسبون حواست به space که اول کار حذف کردی هم داشته باش ... توی وب ههم خواستی قرارش بدی باید .innerhtml قرارش بدی که تگ های html بشیه رو صفحه .
خیر توی قسمت چت سایت هست که ممکنه کاربرا هرجور لینکی بگذارند
دوستان جواب این سوال رو پیدا کردم گفتم بگذارم اینجا برا هرکسی که احیانا ممکنه نیاز داشته باشه
string txt = "this is my url https://bazarefori.ir/%D9%85%D8%B4%D...8C/show/72372/ and visit this website and this is my url http://www.yahoo.com";
Regex regx = new Regex(@"(http|ftp|https):\/\/([\w\-_]+(?:(?:\.[\w\-_]+)+))([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?", RegexOptions.IgnoreCase);
MatchCollection mactches = regx.Matches(txt);
foreach (Match match in mactches)
{
txt = txt.Replace(match.Value, "<a href='" + match.Value + "'>" + match.Value + "</a>");
}
aaa.InnerHtml = txt;
آخرین ویرایش به وسیله علیرضا5 : چهارشنبه 21 آبان 1399 در 10:22 صبح