Created
June 26, 2012 07:03
-
-
Save benwong/2993975 to your computer and use it in GitHub Desktop.
Mobile Number Methods (C#)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/// <summary> | |
/// IsValidMobileNumber | |
/// Checks if given string is a valid mobile number | |
/// </summary> | |
/// <param name="rawMobileNumber">Raw mobile number</param> | |
/// <returns>If is valid true, otherwise false</returns> | |
protected bool IsValidMobileNumber(string rawMobileNumber) { | |
string mobileNumber = Regex.Replace(rawMobileNumber, @"\s+", ""); | |
mobileNumber = mobileNumber.Replace("+", ""); | |
if (mobileNumber.Substring(0, 2).Equals("61")) { | |
mobileNumber.Replace("61", "0"); | |
} | |
Regex mobileNumberRegex = new Regex(@"^\d{10}$"); | |
if (mobileNumberRegex.IsMatch(mobileNumber)) { | |
return true; | |
} | |
return false; | |
} | |
/// <summary> | |
/// TidyMobileNumber | |
/// Removes uneccessary spaces and characters from raw mobile number | |
/// Prepares number for storing in database | |
/// </summary> | |
/// <param name="rawMobileNumber">Raw mobile number</param> | |
/// <returns>Tidy mobile number</returns> | |
protected string TidyMobileNumber(string rawMobileNumber) { | |
string mobileNumber = Regex.Replace(rawMobileNumber, @"\s+", ""); | |
mobileNumber = mobileNumber.Replace("+", ""); | |
if (mobileNumber.Substring(0, 2).Equals("61")) { | |
mobileNumber = mobileNumber.Replace("61", "0"); | |
} | |
Regex mobileNumberRegex = new Regex(@"^\d{10}$"); | |
if (!mobileNumberRegex.IsMatch(mobileNumber)) { | |
throw new ArgumentException("Input string is not a valid mobile number."); | |
} | |
return mobileNumber; | |
} | |
/// <summary> | |
/// FormatMobileNumber | |
/// Outputs a mobile number in a more readable format. | |
/// </summary> | |
/// <param name="rawMobileNumber">Raw mobile number</param> | |
/// <returns>Formatted mobile number</returns> | |
protected string FormatMobileNumber(string rawMobileNumber) { | |
string mobileNumber = TidyMobileNumber(rawMobileNumber); | |
mobileNumber = mobileNumber.Insert(4, " "); | |
mobileNumber = mobileNumber.Insert(8, " "); | |
return mobileNumber; | |
} | |
/// <summary> | |
/// ValidateMobileNumber | |
/// Validation method for custom validator control | |
/// example aspx code: <asp:customvalidator id="cvMobileNumberValidator" runat="server" controltovalidate="tfMobileNumber" onservervalidate="ValidateMobileNumber" display="Dynamic" errormessage="Mobile number is not valid." /> | |
/// </summary> | |
/// <param name="sender">Control to validate</param> | |
/// <param name="eventArgs">Server validation event arguments</param> | |
protected void ValidateMobileNumber(object sender, ServerValidateEventArgs eventArgs) { | |
eventArgs.IsValid = IsValidMobileNumber(eventArgs.Value); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment