Skip to content

Instantly share code, notes, and snippets.

@benwong
Created June 26, 2012 07:03
Show Gist options
  • Save benwong/2993975 to your computer and use it in GitHub Desktop.
Save benwong/2993975 to your computer and use it in GitHub Desktop.
Mobile Number Methods (C#)
/// <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