PDA

View Full Version : سوال: در یک سیستم پشتیبانی فیلتر کلمات در TextBox رو به چه شکل انجام بدیم؟



پیام حیاتی
چهارشنبه 24 تیر 1394, 17:17 عصر
سلام
سوال مشخص هست ، سیستم چت در یک page جداگانه قرار دارد که کاربر از طریق textbox سوالات خود را مطرح می کند و پاسخ دریافت می کند ، میخواهم کلمات بد رو برای TextBox فیلتر کنم.
تشکر

پیام حیاتی
پنج شنبه 25 تیر 1394, 20:08 عصر
کلمات مورد نظر رو که می خواهیم فیلتر شوند در یک آرایه قرار می دهیم و بعد در حلقه بررسی می کتیم :


string[] bad_word={"bogh1,bogh2"};
for (int i=0;i=bad_word.Length;i++)
{


}

بعد چه شرطی باید قرار بدیم؟!

Mahmoud.Afrad
جمعه 26 تیر 1394, 01:10 صبح
با یک replace ساده به نتیجه میرسی

string newValue = "[...Sencored...]";
StringBuilder stringBuilder = new StringBuilder(TextBox1.Text);

List<string> forbiddenWordsList = new List<string> {"w1", "w2"};

for (int i = 0; i < forbiddenWordsList.Count; i++)
{
stringBuilder.Replace(forbiddenWordsList[i], newValue);
}

// now you can use stringBuilder
Label1.Text = stringBuilder.ToString();

پیام حیاتی
جمعه 26 تیر 1394, 01:29 صبح
ممکنه در مورد کدها کمی توضیح بدید .
آیتم stringBuilder نیاز به چه رفرنسی برای Import دارد؟

Mahmoud.Afrad
جمعه 26 تیر 1394, 02:03 صبح
فضای نام زیر رو اضافه کنید
using System.Text;
در حلقه هر کلمه ممنوعه با مقدار جدید جایگذین میشه. کد رو تست کنید متوجه میشید.

پیام حیاتی
جمعه 26 تیر 1394, 15:07 عصر
مشکل کدهای خودم رو به کمک دوستان به این شکل حل کردم :


String[] bad_word = new String[2];
bad_word[0] = "bad1";
bad_word[1] = "bad2";




for (int i = 0; i < bad_word.Length; i++)
{
if (TextBox1.Text.Contains(bad_word[i]))
{
Label1.Text = "Bad Word";
TextBox1.Text = "";
TextBox2.Text = "";
}
else
{
TextBox2.Text = TextBox2.Text + "\n" + TextBox1.Text;
TextBox1.Text="";
}


}



فکر می کنم این کدها ساده تر و قابل فهم تر هستند ، البته من حرفه ای نیستم شاید روش فوق کارآمدتر باشد.
ممنون استاد.:قلب: