Solved

Rude word filter

Posted on 2004-09-17
10
375 Views
Last Modified: 2012-03-15
Hi ppl!

I need to add a rude word filter to a webform to check if a user has entered an obscene word in a sentence stored in a string captured from a textbox. Can someone recommend a way of doing this in c#. Also does anyone know a source/library of common rude words to use?

Thanks for your help,
Kevin
0
Comment
Question by:tnook
10 Comments
 
LVL 3

Expert Comment

by:ruff_ryder
ID: 12090328
This sounds like a classic parsing problem. Basically what you want to do is parse the text for your predefined rude words when the Textbox text is validating. I'll start you off by telling you to have a look at the Validating Events for the Textbox control and also the Regex class to help you with the parsing.

Do some reading on those and make an attempt at some code. If you have further problems then check back here and I'll try to help.
0
 
LVL 19

Expert Comment

by:Desp
ID: 12090697
you can have an arraylist and then filll targat arraylist with all the common rude words...

if (RudeWords.Contains(InputWord)) //input word from user is being checked
 {
//word is catch!!
 }
0
 
LVL 18

Expert Comment

by:armoghan
ID: 12091101
This link shows an example to do such things
http://www.codefixer.com/codesnippets/replacebadwords.asp
0
 
LVL 10

Accepted Solution

by:
ptmcomp earned 400 total points
ID: 12091150
This could work similar to SPAM filters like K9. First parse the text and seperate words (e.g. using regex), then look them up in a hashtable/database.
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 7

Expert Comment

by:jackiechen858
ID: 12091334
I agree with ptmcomp's suggestion:

                  string Commend= "I love this game game";

                  string []words= Commend.Split(new Char[] {' '});
                  Hashtable ht = new Hashtable();
                  for ( int i=0;i< words.Length;i++)
                  {
                        if ( !ht.ContainsKey(words[i].ToLower()) )
                              ht.Add(words[i],words[i].ToLower());
                  }
                  ArrayList badwords = new ArrayList();
                  badwords.Add("bad");
                  bool bFind = false;
                  for ( int i=0;i<badwords.Count;i++)
                  {
                        if ( ht.ContainsKey(badwords[i]))
                        {
                              bFind=true;
                              break;
                        }
                  }


If the input is quite a long sentence, it will be more efficient than searching the whole string. But if the input is a different language which don't split words by space,  that's a different story.
0
 
LVL 6

Expert Comment

by:DominicCronin
ID: 12093144
Don't forget that a poor implementation will earn you the scorn of all the inhabitants of Scunthorpe and Penistone.
0
 
LVL 10

Expert Comment

by:smegghead
ID: 12102782
I know Scunthorpe is a place, and a football team, but is Penistone a place ?? never heard of that one.
0
 
LVL 6

Expert Comment

by:DominicCronin
ID: 12105228
Indeed Penistone is a place. I imagine they suffer just as badly as Scunthorpe in the Internet filtering game. Still - Scunthorpe is more famous, if only because of the ill-fated proposal to change the name to Sconthorpe for Internet use. Talk about get a life!
0
 
LVL 10

Expert Comment

by:smegghead
ID: 12105271
Then they'd have the trouble with whether to pronounce it Scone-Thorpe or Scon-Thorpe

Anyway... :-)
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Summary: Persistence is the capability of an application to store the state of objects and recover it when necessary. This article compares the two common types of serialization in aspects of data access, readability, and runtime cost. A ready-to…
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
This video discusses moving either the default database or any database to a new volume.

760 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now