Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Wanet Telecoms Ltd on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

some code that may be helpful 2

Status
Not open for further replies.

kmfna

MIS
Sep 26, 2003
306
US
Hello all,

While this probably isn't the most bullet proof code in the world, I think that it offers a pretty decent starting point for you do develop more robust functionality. This is just a validation class that you can add on to...though I have to say that the address function is pretty good, albiet really long. Anyway, here it is, let me know what you think, and use it all you want.

Kevin:

Code:
/*
	Created By:	Kevin Albright
	Date Created:	October 15, 2004
	Last Modified:	October 18, 2004
	Description:	The Validation Class is designed to validate certain data types (eg. Alphabetic, Numeric)
			as well as certain data formats (eg. Phone Number, Zip Code).  Further, it is used to 
			manipulate strings for display purposes (eg. Phone Number, Zip Code, Currency (without Commas),
			Addresses (according to USPS standard notations))  Lastly, this class is used to remove
			various unwanted characters from strings (tab, carriage return, etc...)
*/

using System;
using System.Collections;
using System.Text;
using System.Text.RegularExpressions;


namespace Validation
{
	public class Validate
	{

	#region **** Begin Bool Functions ******
	/*****************************************************
		Functions that return if a value is valid 
	*****************************************************/
//---------------------------------------------------------------------------|
		public bool ValidAlpha(string AlphaStr)  // ++++++ Checks to make sure a string is Alphabetic ++++++
		{
			foreach (char c in AlphaStr)
			{
				if (!char.IsLetter(c))
					return false;
			}
			return true;
		} // ============= End ValidAlpha() =============
		
//---------------------------------------------------------------------------|
		public bool ValidDate(string vDate) // ++++++++++ Checks to see if a date is valid +++++++
		{
			vDate = vDate.Trim();
			if (vDate == "")
				return true;
			int Mon, Day, Yr; 
			DateTime ValDate; 
			//string NDate;
			try
			{
				if (Regex.IsMatch(vDate,@"\d{1,2}[/]\d{1,2}[/](\d{4}|\d{2})") || 
					Regex.IsMatch(vDate,@"\d{1,2}[-]\d{1,2}[-](\d{4}|\d{4})"))  //looks for a format with 2 /'s or 2 -'s
				{
					ValDate = Convert.ToDateTime(vDate);
				}
				else
				{
					if (vDate.Trim().Length != 8) //Not a readable date format
						return false;

					if (Convert.ToInt16(vDate.Substring(0, 2)) > 12)  //Format yyyymmdd
					{
						Yr = Convert.ToInt16(vDate.Substring(0, 4));
						Mon = Convert.ToInt16(vDate.Substring(4, 2));
						Day = Convert.ToInt16(vDate.Substring(6, 2));
						
						return (ValidDate(Mon.ToString() + "/" + Day.ToString() + "/" + Yr.ToString()));
						
					}
					else //Format mmddyyyy
					{
						Mon = Convert.ToInt16(vDate.Substring(0, 2));
						Day = Convert.ToInt16(vDate.Substring(2, 2));
						Yr = Convert.ToInt16(vDate.Substring(4, 4));
						
						return (ValidDate(Mon.ToString() + "/" + Day.ToString() + "/" + Yr.ToString()));
					}
				}
			}
			catch	//error is captured if the date cannot be established by C#'s Convert.ToDateTime()
			{
				return false;
			}

			return true;
		} //===================== End ValidDate() ==============

//---------------------------------------------------------------------------|
		public bool ValidNum (string Num) //+++++++++++ Used to Validate Currency +++++++
		{
			//Allows 1 comma and 1 period

			int Pd = 0, Comma = 0;
			if (Num.Trim() != "")
			{
				foreach (char c in Num.Trim())
				{
					if (!char.IsNumber(c) && (!c.Equals('.')) && (!c.Equals(',')))
					{
						return false;
					}
					if (c.Equals('.'))
						Pd++;	
					if (c.Equals(','))
						Comma++;
				}
				if (Pd > 1 || Comma > 1)
				{
					return false;
				}
			}
			return true;
		}//========= End ValidNum() =============
		
//---------------------------------------------------------------------------|
		public bool ValidPW(string PW)//++++++++++++ Checks for Valid Passwords +++++++++++++
		{
			if (PW.Trim() != "" && PW.Length < 6) //If the password is not at least 6 characters
				return false;
			foreach (char c in PW)
			{
				if (!char.IsNumber(c) && !char.IsLetter(c)) //if the character is not alpha numeric
					return false;
			}
			return true;
		}//============ End ValidPW() ==========================
		
//---------------------------------------------------------------------------|
		public bool ValidPhone(string Phone)//++++++++++++ Validate Phone ++++++++++
		{
			//Allows a 7, 10, or 11 character Phone number
			Phone = CleanPhone(Phone); //calls to clean out all non-numeric characters
			if (Phone.Length != 11 && Phone.Length != 10 && Phone.Length != 7)
				return false;
			else
				return true;
		}//============ End ValidPhone() ==========
		

//---------------------------------------------------------------------------|
		public bool ValidZip(string ZC)//+++++++++++ Validates a Zip Code ++++
		{
			//Allows for a 5 or 9 digit zip code
			ZC = CleanZip(ZC); //calls to clean out all non-numeric characters
			if (ZC.Length != 5 && ZC.Length != 9 && ZC.Trim() != "")
				return false;
			else
				return true;
		}//=========== End ValidZip() ==========
		
	
	#endregion //End of the Bool Region

	#region **** Begin String Functions ****

	/*******************************************************
		Functions for manipulating strings
	*******************************************************/
//---------------------------------------------------------------------------|
		public string CleanAddress(string inString)//++++++++++++ Modifies Address Data +++++++++++++++
		{
			// Mapped Name conversions provided by the United States Postal Service
			StringBuilder sb = new StringBuilder(" " + CleanString(inString) + " ");//spaces added as word boundaries
			sb = sb.Replace(" BUILDING "," BLDG ");
			sb = sb.Replace(" BUILDNG "," BLDG ");
			sb = sb.Replace(" BLDNG "," BLDG ");
			sb = sb.Replace(" STREET "," ST ");
			sb = sb.Replace(" AVENUE "," AVE ");
			sb = sb.Replace(" AVE "," AVE ");
			sb = sb.Replace(" ROAD "," RD ");
			sb = sb.Replace(" RD "," RD ");
			sb = sb.Replace(" BOULEVARD "," BLVD ");
			sb = sb.Replace(" BLVD "," BLVD ");
			sb = sb.Replace(" STE "," SUITE ");
			sb = sb.Replace(" STE. "," SUITE ");
			sb = sb.Replace(" SUITE "," SUITE ");
			sb = sb.Replace(" HIGHWAY "," HWY ");
			sb = sb.Replace(" HWY"," HWY ");
			sb = sb.Replace(" PLACE "," PL ");
			sb = sb.Replace(" ROUTE "," ROUTE ");
			sb = sb.Replace(" RTE "," ROUTE ");
			sb = sb.Replace(" RT "," ROUTE ");
			sb = sb.Replace(" TERRACE "," TERRACE");
			sb = sb.Replace(" TERR "," TERRACE ");
			sb = sb.Replace(" TERACE "," TERRACE ");
			sb = sb.Replace(" ALLEE "," ALY ");
			sb = sb.Replace(" ALLEY "," ALY ");
			sb = sb.Replace(" ALLY "," ALY ");
			sb = sb.Replace(" ALY "," ALY ");
			sb = sb.Replace(" ANEX "," ANX ");
			sb = sb.Replace(" ANNEX "," ANX ");
			sb = sb.Replace(" ANNX "," ANX ");
			sb = sb.Replace(" ANX "," ANX ");
			sb = sb.Replace(" ARC "," ARC ");
			sb = sb.Replace(" ARCADE "," ARC ");
			sb = sb.Replace(" AV "," ");
			sb = sb.Replace(" AVE "," AVE ");
			sb = sb.Replace(" AVEN "," AVE ");
			sb = sb.Replace(" AVENU "," AVE ");
			sb = sb.Replace(" AVENUE "," AVE ");
			sb = sb.Replace(" AVN "," AVE ");
			sb = sb.Replace(" AVNUE "," AVE ");
			sb = sb.Replace(" BAYOO "," BYU ");
			sb = sb.Replace(" BAYOU "," BYU ");
			sb = sb.Replace(" BCH "," BCH ");
			sb = sb.Replace(" BEACH "," BCH ");
			sb = sb.Replace(" BEND "," BND ");
			sb = sb.Replace(" BND "," BND ");
			sb = sb.Replace(" BLF "," BLF ");
			sb = sb.Replace(" BLUF "," BLF ");
			sb = sb.Replace(" BLUFF "," BLF ");
			sb = sb.Replace(" BLUFFS "," BLFS ");
			sb = sb.Replace(" BOT "," BTM ");
			sb = sb.Replace(" BOTTM "," BTM ");
			sb = sb.Replace(" BOTTOM "," BTM ");
			sb = sb.Replace(" BTM "," BTM ");
			sb = sb.Replace(" BLVD "," BLVD ");
			sb = sb.Replace(" BOUL "," BLVD ");
			sb = sb.Replace(" BOULEVARD "," BLVD ");
			sb = sb.Replace(" BOULV "," BLVD ");
			sb = sb.Replace(" BR "," BR ");
			sb = sb.Replace(" BRANCH "," BR ");
			sb = sb.Replace(" BRNCH "," BR ");
			sb = sb.Replace(" BRDGE "," BRG ");
			sb = sb.Replace(" BRG "," BRG ");
			sb = sb.Replace(" BRIDGE "," BRG ");
			sb = sb.Replace(" BRK "," BRK ");
			sb = sb.Replace(" BROOK "," BRK ");
			sb = sb.Replace(" BROOKS "," BRKS ");
			sb = sb.Replace(" BURG "," BG ");
			sb = sb.Replace(" BURGS "," BGS ");
			sb = sb.Replace(" BYP "," BYP ");
			sb = sb.Replace(" BYPA "," BYP ");
			sb = sb.Replace(" BYPAS "," BYP ");
			sb = sb.Replace(" BYPASS "," BYP ");
			sb = sb.Replace(" BYPS "," BYP ");
			sb = sb.Replace(" CAMP "," CP ");
			sb = sb.Replace(" CMP "," CP ");
			sb = sb.Replace(" CP "," CP ");
			sb = sb.Replace(" CANYN "," CYN ");
			sb = sb.Replace(" CANYON "," CYN ");
			sb = sb.Replace(" CNYN "," CYN ");
			sb = sb.Replace(" CYN "," CYN ");
			sb = sb.Replace(" CAPE "," CPE ");
			sb = sb.Replace(" CPE "," CPE ");
			sb = sb.Replace(" CAUSEWAY "," CSWY ");
			sb = sb.Replace(" CAUSWAY "," CSWY ");
			sb = sb.Replace(" CSWY "," CSWY ");
			sb = sb.Replace(" CEN "," CTR ");
			sb = sb.Replace(" CENT "," CTR ");
			sb = sb.Replace(" CENTER "," CTR ");
			sb = sb.Replace(" CENTR "," CTR ");
			sb = sb.Replace(" CENTRE "," CTR ");
			sb = sb.Replace(" CNTER "," CTR ");
			sb = sb.Replace(" CNTR "," CTR ");
			sb = sb.Replace(" CTR "," CTR ");
			sb = sb.Replace(" CENTERS "," CTRS ");
			sb = sb.Replace(" CIR "," CIR ");
			sb = sb.Replace(" CIRC "," CIR ");
			sb = sb.Replace(" CIRCL "," CIR ");
			sb = sb.Replace(" CIRCLE "," CIR ");
			sb = sb.Replace(" CRCL "," CIR ");
			sb = sb.Replace(" CRCLE "," CIR ");
			sb = sb.Replace(" CIRCLES "," CIRS ");
			sb = sb.Replace(" CLF "," CLF ");
			sb = sb.Replace(" CLIFF "," CLF ");
			sb = sb.Replace(" CLFS "," CLFS ");
			sb = sb.Replace(" CLIFFS "," CLFS ");
			sb = sb.Replace(" CLB "," CLB ");
			sb = sb.Replace(" CLUB "," CLB ");
			sb = sb.Replace(" COMMON "," CMN ");
			sb = sb.Replace(" COR "," COR ");
			sb = sb.Replace(" CORNER "," COR ");
			sb = sb.Replace(" CORNERS "," CORS ");
			sb = sb.Replace(" CORS "," CORS ");
			sb = sb.Replace(" COURSE "," CRSE ");
			sb = sb.Replace(" CRSE "," CRSE ");
			sb = sb.Replace(" COURT "," CT ");
			sb = sb.Replace(" CRT "," CT ");
			sb = sb.Replace(" CT "," CT ");
			sb = sb.Replace(" COURTS "," CTS ");
			sb = sb.Replace(" CT "," CTS ");
			sb = sb.Replace(" COVE "," CV ");
			sb = sb.Replace(" CV "," CV ");
			sb = sb.Replace(" COVES "," CVS ");
			sb = sb.Replace(" CK "," CRK ");
			sb = sb.Replace(" CR "," CRK ");
			sb = sb.Replace(" CREEK "," CRK ");
			sb = sb.Replace(" CRK "," CRK ");
			sb = sb.Replace(" CRECENT "," CRES ");
			sb = sb.Replace(" CRES "," CRES ");
			sb = sb.Replace(" CRESCENT "," CRES ");
			sb = sb.Replace(" CRESENT "," CRES ");
			sb = sb.Replace(" CRSCNT "," CRES ");
			sb = sb.Replace(" CRSENT "," CRES ");
			sb = sb.Replace(" CRSNT "," CRES ");
			sb = sb.Replace(" CREST "," CRST ");
			sb = sb.Replace(" CROSSING "," XING ");
			sb = sb.Replace(" CRSSING "," XING ");
			sb = sb.Replace(" CRSSNG "," XING ");
			sb = sb.Replace(" XING "," XING ");
			sb = sb.Replace(" CROSSROAD "," XRD ");
			sb = sb.Replace(" CURVE "," CURV ");
			sb = sb.Replace(" DALE "," DL ");
			sb = sb.Replace(" DL "," DL ");
			sb = sb.Replace(" DAM "," DM ");
			sb = sb.Replace(" DM "," DM ");
			sb = sb.Replace(" DIV "," DV ");
			sb = sb.Replace(" DIVIDE "," DV ");
			sb = sb.Replace(" DV "," DV ");
			sb = sb.Replace(" DVD "," DV ");
			sb = sb.Replace(" DR "," DR ");
			sb = sb.Replace(" DRIV "," DR ");
			sb = sb.Replace(" DRIVE "," DR ");
			sb = sb.Replace(" DRV "," DR ");
			sb = sb.Replace(" DRIVES "," DRS ");
			sb = sb.Replace(" EST "," EST ");
			sb = sb.Replace(" ESTATE "," EST ");
			sb = sb.Replace(" ESTATES "," ESTS ");
			sb = sb.Replace(" ESTS "," ESTS ");
			sb = sb.Replace(" EXP "," EXPY ");
			sb = sb.Replace(" EXPR "," EXPY ");
			sb = sb.Replace(" EXPRESS "," EXPY ");
			sb = sb.Replace(" EXPRESSWAY "," EXPY ");
			sb = sb.Replace(" EXPW "," EXPY ");
			sb = sb.Replace(" EXPY "," EXPY ");
			sb = sb.Replace(" EXT "," EXT ");
			sb = sb.Replace(" EXTENSION "," EXT ");
			sb = sb.Replace(" EXTN "," EXT ");
			sb = sb.Replace(" EXTNSN "," EXT ");
			sb = sb.Replace(" EXTENSIONS "," EXTS ");
			sb = sb.Replace(" EXTS "," EXTS ");
			sb = sb.Replace(" FALL "," FALL ");
			sb = sb.Replace(" FALLS "," FLS ");
			sb = sb.Replace(" FLS "," FLS ");
			sb = sb.Replace(" FERRY "," FRY ");
			sb = sb.Replace(" FRRY "," FRY ");
			sb = sb.Replace(" FRY "," FRY ");
			sb = sb.Replace(" FIELD "," FLD ");
			sb = sb.Replace(" FLD "," FLD ");
			sb = sb.Replace(" FIELDS "," FLDS ");
			sb = sb.Replace(" FLDS "," FLDS ");
			sb = sb.Replace(" FLAT "," FLT ");
			sb = sb.Replace(" FLT "," FLT ");
			sb = sb.Replace(" FLATS "," FLTS ");
			sb = sb.Replace(" FLTS "," FLTS ");
			sb = sb.Replace(" FORD "," FRD ");
			sb = sb.Replace(" FRD "," FRD ");
			sb = sb.Replace(" FORDS "," FRDS ");
			sb = sb.Replace(" FOREST "," FRST ");
			sb = sb.Replace(" FORESTS "," FRST ");
			sb = sb.Replace(" FRST "," FRST ");
			sb = sb.Replace(" FORG "," FRG ");
			sb = sb.Replace(" FORGE "," FRG ");
			sb = sb.Replace(" FRG "," FRG ");
			sb = sb.Replace(" FORGES "," FRGS ");
			sb = sb.Replace(" FORK "," FRK ");
			sb = sb.Replace(" FRK "," FRK ");
			sb = sb.Replace(" FORKS "," FRKS ");
			sb = sb.Replace(" FRKS "," FRKS ");
			sb = sb.Replace(" FORT "," FT ");
			sb = sb.Replace(" FRT "," FT ");
			sb = sb.Replace(" FT "," FT ");
			sb = sb.Replace(" FREEWAY "," FWY ");
			sb = sb.Replace(" FREEWY "," FWY ");
			sb = sb.Replace(" FRWAY "," FWY ");
			sb = sb.Replace(" FRWY "," FWY ");
			sb = sb.Replace(" FWY "," FWY ");
			sb = sb.Replace(" GARDEN "," GDN ");
			sb = sb.Replace(" GARDN "," GDN ");
			sb = sb.Replace(" GDN "," GDN ");
			sb = sb.Replace(" GRDEN "," GDN ");
			sb = sb.Replace(" GRDN "," GDN ");
			sb = sb.Replace(" GARDENS "," GDNS ");
			sb = sb.Replace(" GDNS "," GDNS ");
			sb = sb.Replace(" GRDNS "," GDNS ");
			sb = sb.Replace(" GATEWAY "," GTWY ");
			sb = sb.Replace(" GATEWY "," GTWY ");
			sb = sb.Replace(" GATWAY "," GTWY ");
			sb = sb.Replace(" GTWAY "," GTWY ");
			sb = sb.Replace(" GTWY "," GTWY ");
			sb = sb.Replace(" GLEN "," GLN ");
			sb = sb.Replace(" GLN "," GLN ");
			sb = sb.Replace(" GLENS "," GLNS ");
			sb = sb.Replace(" GREEN "," GRN ");
			sb = sb.Replace(" GRN "," GRN ");
			sb = sb.Replace(" GREENS "," GRNS ");
			sb = sb.Replace(" GROV "," GRV ");
			sb = sb.Replace(" GROVE "," GRV ");
			sb = sb.Replace(" GRV "," GRV ");
			sb = sb.Replace(" GROVES "," GRVS ");
			sb = sb.Replace(" HARB "," HBR ");
			sb = sb.Replace(" HARBOR "," HBR ");
			sb = sb.Replace(" HARBR "," HBR ");
			sb = sb.Replace(" HBR "," HBR ");
			sb = sb.Replace(" HRBOR "," HBR ");
			sb = sb.Replace(" HARBORS "," HBRS ");
			sb = sb.Replace(" HAVEN "," HVN ");
			sb = sb.Replace(" HAVN "," HVN ");
			sb = sb.Replace(" HVN "," HVN ");
			sb = sb.Replace(" HEIGHT "," HTS ");
			sb = sb.Replace(" HEIGHTS "," HTS ");
			sb = sb.Replace(" HGTS "," HTS ");
			sb = sb.Replace(" HT "," HTS ");
			sb = sb.Replace(" HTS "," HTS ");
			sb = sb.Replace(" HIGHWAY "," HWY ");
			sb = sb.Replace(" HIGHWY "," HWY ");
			sb = sb.Replace(" HIWAY "," HWY ");
			sb = sb.Replace(" HIWY "," HWY ");
			sb = sb.Replace(" HWAY "," HWY ");
			sb = sb.Replace(" HWY "," HWY ");
			sb = sb.Replace(" HILL "," HL ");
			sb = sb.Replace(" HL "," HL ");
			sb = sb.Replace(" HILLS "," HLS ");
			sb = sb.Replace(" HLS "," HLS ");
			sb = sb.Replace(" HLLW "," HOLW ");
			sb = sb.Replace(" HOLLOW "," HOLW ");
			sb = sb.Replace(" HOLLOWS "," HOLW ");
			sb = sb.Replace(" HOLW "," HOLW ");
			sb = sb.Replace(" HOLWS "," HOLW ");
			sb = sb.Replace(" INLET "," INLT ");
			sb = sb.Replace(" INLT "," INLT ");
			sb = sb.Replace(" IS "," IS ");
			sb = sb.Replace(" ISLAND "," IS ");
			sb = sb.Replace(" ISLND "," IS ");
			sb = sb.Replace(" ISLANDS "," ISS ");
			sb = sb.Replace(" ISLNDS "," ISS ");
			sb = sb.Replace(" ISS "," ISS ");
			sb = sb.Replace(" ISLE "," ISLE ");
			sb = sb.Replace(" ISLES "," ISLE ");
			sb = sb.Replace(" JCT "," JCT ");
			sb = sb.Replace(" JCTION "," JCT ");
			sb = sb.Replace(" JCTN "," JCT ");
			sb = sb.Replace(" JUNCTION "," JCT ");
			sb = sb.Replace(" JUNCTN "," JCT ");
			sb = sb.Replace(" JUNCTON "," JCT ");
			sb = sb.Replace(" JCTNS "," JCTS ");
			sb = sb.Replace(" JCTS "," JCTS ");
			sb = sb.Replace(" JUNCTIONS "," JCTS ");
			sb = sb.Replace(" KEY "," KY ");
			sb = sb.Replace(" KY "," KY ");
			sb = sb.Replace(" KEYS "," KYS ");
			sb = sb.Replace(" KYS "," KYS ");
			sb = sb.Replace(" KNL "," KNL ");
			sb = sb.Replace(" KNOL "," KNL ");
			sb = sb.Replace(" KNOLL "," KNL ");
			sb = sb.Replace(" KNLS "," KNLS ");
			sb = sb.Replace(" KNOLLS "," KNLS ");
			sb = sb.Replace(" LAKE "," LK ");
			sb = sb.Replace(" LK "," LK ");
			sb = sb.Replace(" LAKES "," LKS ");
			sb = sb.Replace(" LKS "," LKS ");
			sb = sb.Replace(" LAND "," LAND ");
			sb = sb.Replace(" LANDING "," LNDG ");
			sb = sb.Replace(" LNDG "," LNDG ");
			sb = sb.Replace(" LNDNG "," LNDG ");
			sb = sb.Replace(" LA "," LN ");
			sb = sb.Replace(" LANE "," LN ");
			sb = sb.Replace(" LANES "," LN ");
			sb = sb.Replace(" LN "," LN ");
			sb = sb.Replace(" LGT "," LGT ");
			sb = sb.Replace(" LIGHT "," LGT ");
			sb = sb.Replace(" LIGHTS "," LGTS ");
			sb = sb.Replace(" LF "," LF ");
			sb = sb.Replace(" LOAF "," LF ");
			sb = sb.Replace(" LCK "," LCK ");
			sb = sb.Replace(" LOCK "," LCK ");
			sb = sb.Replace(" LCKS "," LCKS ");
			sb = sb.Replace(" LOCKS "," LCKS ");
			sb = sb.Replace(" LDG "," LDG ");
			sb = sb.Replace(" LDGE "," LDG ");
			sb = sb.Replace(" LODG "," LDG ");
			sb = sb.Replace(" LODGE "," LDG ");
			sb = sb.Replace(" LOOP "," LOOP ");
			sb = sb.Replace(" LOOPS "," LOOP ");
			sb = sb.Replace(" MALL "," MALL ");
			sb = sb.Replace(" MANOR "," MNR ");
			sb = sb.Replace(" MNR "," MNR ");
			sb = sb.Replace(" MANORS "," MNRS ");
			sb = sb.Replace(" MNRS "," MNRS ");
			sb = sb.Replace(" MDW "," MDW ");
			sb = sb.Replace(" MEADOW "," MDW ");
			sb = sb.Replace(" MDWS "," MDWS ");
			sb = sb.Replace(" MEADOWS "," MDWS ");
			sb = sb.Replace(" MEDOWS "," MDWS ");
			sb = sb.Replace(" MEWS "," MEWS ");
			sb = sb.Replace(" MILL "," ML ");
			sb = sb.Replace(" ML "," ML ");
			sb = sb.Replace(" MILLS "," MLS ");
			sb = sb.Replace(" MLS "," MLS ");
			sb = sb.Replace(" MISSION "," MSN ");
			sb = sb.Replace(" MISSN "," MSN ");
			sb = sb.Replace(" MSN "," MSN ");
			sb = sb.Replace(" MSSN "," MSN ");
			sb = sb.Replace(" MOTORWAY "," MTWY ");
			sb = sb.Replace(" MNT "," MT ");
			sb = sb.Replace(" MOUNT "," MT ");
			sb = sb.Replace(" MT "," MT ");
			sb = sb.Replace(" MNTAIN "," MTN ");
			sb = sb.Replace(" MNTN "," MTN ");
			sb = sb.Replace(" MOUNTAIN "," MTN ");
			sb = sb.Replace(" MOUNTIN "," MTN ");
			sb = sb.Replace(" MTIN "," MTN ");
			sb = sb.Replace(" MTN "," MTN ");
			sb = sb.Replace(" MNTNS "," MTNS ");
			sb = sb.Replace(" MOUNTAINS "," MTNS ");
			sb = sb.Replace(" NCK "," NCK ");
			sb = sb.Replace(" NECK "," NCK ");
			sb = sb.Replace(" ORCH "," ORCH ");
			sb = sb.Replace(" ORCHARD "," ORCH ");
			sb = sb.Replace(" ORCHRD "," ORCH ");
			sb = sb.Replace(" OVAL "," OVAL ");
			sb = sb.Replace(" OVL "," OVAL ");
			sb = sb.Replace(" OVERPASS "," OPAS ");
			sb = sb.Replace(" PARK "," PARK ");
			sb = sb.Replace(" PK "," PARK ");
			sb = sb.Replace(" PRK "," PARK ");
			sb = sb.Replace(" PARKS "," PARK ");
			sb = sb.Replace(" PARKWAY "," PKWY ");
			sb = sb.Replace(" PARKWY "," PKWY ");
			sb = sb.Replace(" PKWAY "," PKWY ");
			sb = sb.Replace(" PKWY "," PKWY ");
			sb = sb.Replace(" PKY "," PKWY ");
			sb = sb.Replace(" PARKWAYS "," PKWY ");
			sb = sb.Replace(" PKWYS "," PKWY ");
			sb = sb.Replace(" PASS "," PASS ");
			sb = sb.Replace(" PASSAGE "," PSGE ");
			sb = sb.Replace(" PATH "," PATH ");
			sb = sb.Replace(" PATHS "," PATH ");
			sb = sb.Replace(" PIKE "," PIKE ");
			sb = sb.Replace(" PIKES "," PIKE ");
			sb = sb.Replace(" PINE "," PNE ");
			sb = sb.Replace(" PINES "," PNES ");
			sb = sb.Replace(" PNES "," PNES ");
			sb = sb.Replace(" PL "," PL ");
			sb = sb.Replace(" PLACE "," PL ");
			sb = sb.Replace(" PLAIN "," PLN ");
			sb = sb.Replace(" PLN "," PLN ");
			sb = sb.Replace(" PLAINES "," PLNS ");
			sb = sb.Replace(" PLAINS "," PLNS ");
			sb = sb.Replace(" PLNS "," PLNS ");
			sb = sb.Replace(" PLAZA "," PLZ ");
			sb = sb.Replace(" PLZ "," PLZ ");
			sb = sb.Replace(" PLZA "," PLZ ");
			sb = sb.Replace(" POINT "," PT ");
			sb = sb.Replace(" PT "," PT ");
			sb = sb.Replace(" POINTS "," PTS ");
			sb = sb.Replace(" PTS "," PTS ");
			sb = sb.Replace(" PORT "," PRT ");
			sb = sb.Replace(" PRT "," PRT ");
			sb = sb.Replace(" PORTS "," PRTS ");
			sb = sb.Replace(" PRTS "," PRTS ");
			sb = sb.Replace(" PR "," PR ");
			sb = sb.Replace(" PRAIRIE "," PR ");
			sb = sb.Replace(" PRARIE "," PR ");
			sb = sb.Replace(" PRR "," PR ");
			sb = sb.Replace(" RAD "," RADL ");
			sb = sb.Replace(" RADIAL "," RADL ");
			sb = sb.Replace(" RADIEL "," RADL ");
			sb = sb.Replace(" RADL "," RADL ");
			sb = sb.Replace(" RAMP "," RAMP ");
			sb = sb.Replace(" RANCH "," RNCH ");
			sb = sb.Replace(" RANCHES "," RNCH ");
			sb = sb.Replace(" RNCH "," RNCH ");
			sb = sb.Replace(" RNCHS "," RNCH ");
			sb = sb.Replace(" RAPID "," RPD ");
			sb = sb.Replace(" RPD "," RPD ");
			sb = sb.Replace(" RAPIDS "," RPDS ");
			sb = sb.Replace(" RPDS "," RPDS ");
			sb = sb.Replace(" REST "," RST ");
			sb = sb.Replace(" RST "," RST ");
			sb = sb.Replace(" RDG "," RDG ");
			sb = sb.Replace(" RDGE "," RDG ");
			sb = sb.Replace(" RIDGE "," RDG ");
			sb = sb.Replace(" RDGS "," RDGS ");
			sb = sb.Replace(" RIDGES "," RDGS ");
			sb = sb.Replace(" RIV "," RIV ");
			sb = sb.Replace(" RIVER "," RIV ");
			sb = sb.Replace(" RIVR "," RIV ");
			sb = sb.Replace(" RVR "," RIV ");
			sb = sb.Replace(" RD "," RD ");
			sb = sb.Replace(" ROAD "," RD ");
			sb = sb.Replace(" RDS "," RDS ");
			sb = sb.Replace(" ROADS "," RDS ");
			sb = sb.Replace(" ROUTE "," RTE ");
			sb = sb.Replace(" ROW "," ROW ");
			sb = sb.Replace(" RUE "," RUE ");
			sb = sb.Replace(" RUN "," RUN ");
			sb = sb.Replace(" SHL "," SHL ");
			sb = sb.Replace(" SHOAL "," SHL ");
			sb = sb.Replace(" SHLS "," SHLS ");
			sb = sb.Replace(" SHOALS "," SHLS ");
			sb = sb.Replace(" SHOAR "," SHR ");
			sb = sb.Replace(" SHORE "," SHR ");
			sb = sb.Replace(" SHR "," SHR ");
			sb = sb.Replace(" SHOARS "," SHRS ");
			sb = sb.Replace(" SHORES "," SHRS ");
			sb = sb.Replace(" SHRS "," SHRS ");
			sb = sb.Replace(" SKYWAY "," SKWY ");
			sb = sb.Replace(" SPG "," SPG ");
			sb = sb.Replace(" SPNG "," SPG ");
			sb = sb.Replace(" SPRING "," SPG ");
			sb = sb.Replace(" SPRNG "," SPG ");
			sb = sb.Replace(" SPGS "," SPGS ");
			sb = sb.Replace(" SPNGS "," SPGS ");
			sb = sb.Replace(" SPRINGS "," SPGS ");
			sb = sb.Replace(" SPRNGS "," SPGS ");
			sb = sb.Replace(" SPUR "," SPUR ");
			sb = sb.Replace(" SPURS "," SPUR ");
			sb = sb.Replace(" SQ "," SQ ");
			sb = sb.Replace(" SQR "," SQ ");
			sb = sb.Replace(" SQRE "," SQ ");
			sb = sb.Replace(" SQU "," SQ ");
			sb = sb.Replace(" SQUARE "," SQ ");
			sb = sb.Replace(" SQRS "," SQS ");
			sb = sb.Replace(" SQUARES "," SQS ");
			sb = sb.Replace(" STA "," STA ");
			sb = sb.Replace(" STATION "," STA ");
			sb = sb.Replace(" STATN "," STA ");
			sb = sb.Replace(" STN "," STA ");
			sb = sb.Replace(" STRA "," STRA ");
			sb = sb.Replace(" STRAV "," STRA ");
			sb = sb.Replace(" STRAVE "," STRA ");
			sb = sb.Replace(" STRAVEN "," STRA ");
			sb = sb.Replace(" STRAVENUE "," STRA ");
			sb = sb.Replace(" STRAVN "," STRA ");
			sb = sb.Replace(" STRVN "," STRA ");
			sb = sb.Replace(" STRVNUE "," STRA ");
			sb = sb.Replace(" STREAM "," STRM ");
			sb = sb.Replace(" STREME "," STRM ");
			sb = sb.Replace(" STRM "," STRM ");
			sb = sb.Replace(" ST "," ST ");
			sb = sb.Replace(" STR "," ST ");
			sb = sb.Replace(" STREET "," ST ");
			sb = sb.Replace(" STRT "," ST ");
			sb = sb.Replace(" STREETS "," STS ");
			sb = sb.Replace(" SMT "," SMT ");
			sb = sb.Replace(" SUMIT "," SMT ");
			sb = sb.Replace(" SUMITT "," SMT ");
			sb = sb.Replace(" SUMMIT "," SMT ");
			sb = sb.Replace(" TER "," TER ");
			sb = sb.Replace(" TERR "," TER ");
			sb = sb.Replace(" TERRACE "," TER ");
			sb = sb.Replace(" THROUGHWAY "," TRWY ");
			sb = sb.Replace(" TRACE "," TRCE ");
			sb = sb.Replace(" TRACES "," TRCE ");
			sb = sb.Replace(" TRCE "," TRCE ");
			sb = sb.Replace(" TRACK "," TRAK ");
			sb = sb.Replace(" TRACKS "," TRAK ");
			sb = sb.Replace(" TRAK "," TRAK ");
			sb = sb.Replace(" TRK "," TRAK ");
			sb = sb.Replace(" TRKS "," TRAK ");
			sb = sb.Replace(" TRAFFICWAY "," TRFY ");
			sb = sb.Replace(" TRFY "," TRFY ");
			sb = sb.Replace(" TR "," TRL ");
			sb = sb.Replace(" TRAIL "," TRL ");
			sb = sb.Replace(" TRAILS "," TRL ");
			sb = sb.Replace(" TRL "," TRL ");
			sb = sb.Replace(" TRLS "," TRL ");
			sb = sb.Replace(" TUNEL "," TUNL ");
			sb = sb.Replace(" TUNL "," TUNL ");
			sb = sb.Replace(" TUNLS "," TUNL ");
			sb = sb.Replace(" TUNNEL "," TUNL ");
			sb = sb.Replace(" TUNNELS "," TUNL ");
			sb = sb.Replace(" TUNNL "," TUNL ");
			sb = sb.Replace(" TPK "," TPKE ");
			sb = sb.Replace(" TPKE "," TPKE ");
			sb = sb.Replace(" TRNPK "," TPKE ");
			sb = sb.Replace(" TRPK "," TPKE ");
			sb = sb.Replace(" TURNPIKE "," TPKE ");
			sb = sb.Replace(" TURNPK "," TPKE ");
			sb = sb.Replace(" UNDERPASS "," UPAS ");
			sb = sb.Replace(" UN "," UN ");
			sb = sb.Replace(" UNION "," UN ");
			sb = sb.Replace(" UNIONS "," UNS ");
			sb = sb.Replace(" VALLEY "," VLY ");
			sb = sb.Replace(" VALLY "," VLY ");
			sb = sb.Replace(" VLLY "," VLY ");
			sb = sb.Replace(" VLY "," VLY ");
			sb = sb.Replace(" VALLEYS "," VLYS ");
			sb = sb.Replace(" VLYS "," VLYS ");
			sb = sb.Replace(" VDCT "," VIA ");
			sb = sb.Replace(" VIA "," VIA ");
			sb = sb.Replace(" VIADCT "," VIA ");
			sb = sb.Replace(" VIADUCT "," VIA ");
			sb = sb.Replace(" VIEW "," VW ");
			sb = sb.Replace(" VW "," VW ");
			sb = sb.Replace(" VIEWS "," VWS ");
			sb = sb.Replace(" VWS "," VWS ");
			sb = sb.Replace(" VILL "," VLG ");
			sb = sb.Replace(" VILLAG "," VLG ");
			sb = sb.Replace(" VILLAGE "," VLG ");
			sb = sb.Replace(" VILLG "," VLG ");
			sb = sb.Replace(" VILLIAGE "," VLG ");
			sb = sb.Replace(" VLG "," VLG ");
			sb = sb.Replace(" VILLAGES "," VLGS ");
			sb = sb.Replace(" VLGS "," VLGS ");
			sb = sb.Replace(" VILLE "," VL ");
			sb = sb.Replace(" VL "," VL ");
			sb = sb.Replace(" VIS "," VIS ");
			sb = sb.Replace(" VIST "," VIS ");
			sb = sb.Replace(" VISTA "," VIS ");
			sb = sb.Replace(" VST "," VIS ");
			sb = sb.Replace(" VSTA "," VIS ");
			sb = sb.Replace(" WALK "," WALK ");
			sb = sb.Replace(" WALKS "," WALK ");
			sb = sb.Replace(" WALL "," WALL ");
			sb = sb.Replace(" WAY "," WAY ");
			sb = sb.Replace(" WY "," WAY ");
			sb = sb.Replace(" WAYS "," WAYS ");
			sb = sb.Replace(" WELL "," WL ");
			sb = sb.Replace(" WELLS "," WLS ");
			sb = sb.Replace(" WLS "," WLS ");
			sb = sb.Replace(" APARTMENT "," APT ");
			sb = sb.Replace(" BASEMENT "," BSMT ");
			sb = sb.Replace(" BUILDING "," BLDG ");
			sb = sb.Replace(" DEPARTMENT "," DEPT ");
			sb = sb.Replace(" FLOOR "," FL ");
			sb = sb.Replace(" FRONT "," FRNT ");
			sb = sb.Replace(" HANGAR "," HNGR ");
			sb = sb.Replace(" LOBBY "," LBBY ");
			sb = sb.Replace(" LOT "," LOT ");
			sb = sb.Replace(" LOWER "," LOWR ");
			sb = sb.Replace(" OFFICE "," OFC ");
			sb = sb.Replace(" PENTHOUSE "," PH ");
			sb = sb.Replace(" PIER "," PIER ");
			sb = sb.Replace(" REAR "," REAR ");
			sb = sb.Replace(" ROOM "," RM ");
			sb = sb.Replace(" SIDE "," SIDE ");
			sb = sb.Replace(" SLIP "," SLIP ");
			sb = sb.Replace(" SPACE "," SPC ");
			sb = sb.Replace(" STOP "," STOP ");
			sb = sb.Replace(" TRAILER "," TRLR ");
			sb = sb.Replace(" UNIT "," UNIT ");
			sb = sb.Replace(" UPPER "," UPPR ");
			string temp = sb.ToString();
			sb=null;
			temp = Regex.Replace(temp, @"(?<num>\d+)\s+N(?>!D)",@"${num} NORTH");	//digit followed by (N,S,E,W)
			temp = Regex.Replace(temp, @"(?<num>\d+)\s+S(?>!T)",@"${num} SOUTH");	//ignoring '1st' & '2nd'
			temp = Regex.Replace(temp, @"(?<num>\d+)\s+E",@"${num} EAST");
			temp = Regex.Replace(temp, @"(?<num>\d+)\s+W",@"${num} WEST");
			temp = Regex.Replace(temp, @"\b(NE|NORTHE)\b","NORTH EAST");
			temp = Regex.Replace(temp, @"\b(NW|NORTHW)\b","NORTH WEST");
			temp = Regex.Replace(temp, @"\b(SW|SOUTHW)\b","SOUTH WEST");
			temp = Regex.Replace(temp, @"\b(SE|SOUTHE)\b","SOUTH EAST");
			temp = Regex.Replace(temp, @"(?<!(BLDG|SUITE) )\bN\b","NORTH");		//Matches (N,S,E,W) w/o 'BLDG' or 'SUITE' behind it
			temp = Regex.Replace(temp, @"(?<!(BLDG|SUITE) )\bS\b","SOUTH");
			temp = Regex.Replace(temp, @"(?<!(BLDG|SUITE) )\bE\b","EAST");
			temp = Regex.Replace(temp, @"(?<!(BLDG|SUITE) )\bW\b","WEST");
			return temp.Trim();
		}//============ End CorrectAddress() =====
		
//---------------------------------------------------------------------------|
		public string CleanPhone(string inString) //++++++++++++ Cleans Phone ++++++++++++
		{
			//Cleans out non-numeric digits from phone numbers
			StringBuilder sb = new StringBuilder();
			foreach (char c in inString)
			{
				if (char.IsNumber(c))
					sb.Append(c);
			}
			return sb.ToString();
		}//============ End CleanPhone() ========
		
//---------------------------------------------------------------------------|
		public string CleanString(string inString)//++++++++++++ Cleans Strings ++++++++++
		{
			//Removes various characters that we do not wish to have stored in our DB
			inString=inString.ToUpper();
			inString=Regex.Replace(inString,@"\s+"," ");
			inString=Regex.Replace(inString,@"[,.'|_+=!@#^&*~<>?{}[\]`\r\n\t]","");
			inString.Replace("  ", " "); //Removes double spaces
			inString.Replace(" -", "-"); //the next two lines force a hyphenated words
			inString.Replace("- ", "-"); //together (ie. woo - hoo to woo-hoo)
			inString=inString.Trim();
			return inString;
		}//=========== End CleanString() ===========
		
//---------------------------------------------------------------------------|
		public string CleanZip(string inString)//============ Cleans Zip Codes ========
		{
			//Removes non-numeric characters from Zip Code
			StringBuilder sb = new StringBuilder();
			foreach (char c in inString)
			{
				if (char.IsNumber(c))
					sb.Append(c);
			}
			return sb.ToString();
		}//=========== End CleanZip() ==========
		
//---------------------------------------------------------------------------|
		public string DispDate (string MDate)
		{
			//Displays dates in the mm/dd/yyyy format
			string NewDate;
			MDate = MDate.Trim();
			if (MDate == "")
				return MDate;
			if (!ValidDate(MDate))
				return MDate;

			if (Regex.IsMatch(MDate,@"\d{1,2}/\d{1,2}/(\d{4}|\d{2})") || 
				Regex.IsMatch(MDate,@"\d{1,2}-\d{1,2}-(\d{4}|\d{2})"))
			{
				return(Convert.ToDateTime(MDate).ToString("MM/dd/yyyy"));
			}
			else
			{
				if (Convert.ToInt16(MDate.Substring(0, 2)) > 12)  //Format yyyymmdd
				{
					NewDate =  MDate.Substring(4, 2) + "/" + MDate.Substring(6, 2) + "/" + MDate.Substring(0, 4);
				}
				else //Format mmddyyyy
				{
					NewDate =  MDate.Substring(0, 2) + "/" + MDate.Substring(2, 2) + "/" + MDate.Substring(4, 4);
				}
				return NewDate;
			}
		}
//---------------------------------------------------------------------------|
		public string DispPhone(string Phone)//++++++++++++ Puts Phone in a readable format ++++++
		{
			//Displays Phone numbers in a standard format
			int Pos = 0;
			StringBuilder sb = new StringBuilder();
			if (Phone.Length == 11)
				Phone = Phone.Substring(1, 10);
			if (Phone.Length != 11 && Phone.Length != 10 && Phone.Length != 7 && Phone != "")
				return "Invalid Phone Format";
			
			foreach (char c in Phone)
			{
				Pos++;
				sb.Append(c);
				if (Phone.Length == 11) //format: 1 (111) 111-1111
				{
					switch (Pos)
					{
						case 1:
						{
							sb.Append(" (");
							break;
						}
						case 4:
						{
							sb.Append(") ");
							break;
						}
						case 7:
						{
							sb.Append("-");
							break;
						}
					}
				}
				if (Phone.Length == 10) //format: (111) 111-1111
				{
					switch (Pos)
					{
						case 1:
						{
							sb.Insert(0, "(");
							break;
						}
						case 3:
						{
							sb.Append(") ");
							break;
						}
						case 6:
						{
							sb.Append("-");
							break;
						}
					}
				}
				if (Phone.Length == 7) //format: 111-1111
				{
					switch (Pos)
					{
						case 3:
						{
							sb.Append("-");
							break;
						}
					}
				}
			}
			
			return sb.ToString();
		}//============ End DispPhone() =========
		
//---------------------------------------------------------------------------|
		public string DispZip(string ZipCode)//+++++++++++ Puts Zip Codes in a Readable Format +++++++++++++
		{
			if (ZipCode.Length != 9 && ZipCode.Length != 5 && ZipCode != "")
				return "Invalid Zip Format";
			StringBuilder sb = new StringBuilder(ZipCode);
			
			if (ZipCode.Length == 9) //format: 11111-1111
			{
				sb.Insert(5, "-");
			}

			return sb.ToString();
		}//=========== End DispZip() ===========
		
//---------------------------------------------------------------------------|
		public string ModNum(string Num)//+++++++++ Moves the Decimal point to the 3rd from last character
		{
			if (!ValidNum(Num))
				return Num;
			StringBuilder sb = new StringBuilder();
			int Loc = 0, Len = Num.Trim().Length, PDLoc = -1;
			if (Num.Trim().Length == 1) //if the number is only 1 character long, add 2 zeros (ex. assume that 2 = 2.00)
			{
				string temp = Num.Trim() + "00"; //Adding 2 zeros
				Num = temp;
				Len = Num.Length; //new length of number (should always be 3)
			}
			if (Num.Trim() != "")
			{
				foreach (char c in Num.Trim()) //Loops through the string to locate the decimal point
				{
					if (c.Equals('.'))
					{
						sb.Append(c); //Adds the Decimal point
						PDLoc = Loc; //Location of the Decimal point in the string
					}
					if (char.IsNumber(c))
					{
						sb.Append(c); //Adds numbers
					}
					Loc++;
				}
				if ((PDLoc != Len - 3) && (PDLoc != -1)) //Moves the Decimal point to the 3rd from last spot of the string
				{
					sb.Replace(".", ""); //Replaces the Decimal point with "", if found anywhere other than 3rd from last position
					sb.Insert((Len-3), '.');
				}
				if (PDLoc == -1) //Adds a Decimal point if there is not one found
				{
					sb.Insert((Len-2), '.');
				}
			}
			return sb.ToString();
		}//============ End ModNum() ============
		
//---------------------------------------------------------------------------|
		
	#endregion 
	}
}

Good luck,
Kevin

- "The truth hurts, maybe not as much as jumping on a bicycle with no seat, but it hurts.
 
Question:

For ValidDate(string dt), why not do something like:
Code:
public static bool IsValidDate(string dt)
{
    try { DateTime _dt = DateTime.Parse(dt); }
    catch { return false; }
    return true;
}
... Instead of all the RegEx stuff? This way, pretty much any Windows-style formatted date would be validated (and in a lot less code). I know that using a try/catch block is "improper" engineering practice, but it seems to make sense in this case.

Same with the ValidNum(string num) method:
Code:
public static bool IsNumeric(string num)
{
    try { int _num = Int32.Parse(num); }
    catch { return false; }
    return true;
}

Also, just as a thought, the address conversion method that you have there may give unexpected results. For example, if somebody lived on, say "BEACH STREET", you'd get "BCH STR"... "MILL ROAD" may become "ML RD", "MOUNTAIN HIGHWAY" would become "MTN HWY" - still legible, but may cause confusion.

Just a couple thoughts, nice work though :)

-----------------------------------------------
"The night sky over the planet Krikkit is the least interesting sight in the entire universe."
-Hitch Hiker's Guide To The Galaxy
 
AtomicChip,

Thanks for the reply...and you are definitely right that it would be good to allow any date format, however this was just written for our company, where we wanted to restrict their possibilities for entry....(a lot of people here would get very confused :) ). Also, for the address, I agree that it could use some tweaking...I considered splitting the address by a " " and looping through the array and just making some assumptions, like:

if (splAdd[++count] != "STREET")
{ //make all of the replacements }
else
{ //make some of the changes that would make sense }

In this case, though a lot of extra logic would have to be built in.

As a side note, for the numeric field, I did try to use a try{} catch{} block first, but found that on failures, it took a lot longer to execute...these failures sometimes took 2-3 seconds and our users are entirely too impatient to wait for it to happen.

Either way, thanks for the recommendations, feel free to post any more!!!

Thanks,
Kevin



- "The truth hurts, maybe not as much as jumping on a bicycle with no seat, but it hurts.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top