私たちのプロジェクトに、簡単な追加要件があります。電話番号を保持する DB のフィールドは、10 文字のみを許可するように設定されています。したがって、「(913)-444-5555」などの文字列が渡された場合、許可する文字セットを渡すことができる、何らかの特別な置換関数を使用して文字列を実行する簡単な方法はありますか?
正規表現?
ベストアンサー1
間違いなく正規表現:
string CleanPhone(string phone)
{
Regex digitsOnly = new Regex(@"[^\d]");
return digitsOnly.Replace(phone, "");
}
または、常に正規表現を再作成することを避けるためにクラス内で次のようにします。
private static Regex digitsOnly = new Regex(@"[^\d]");
public static string CleanPhone(string phone)
{
return digitsOnly.Replace(phone, "");
}
実際の入力によっては、先頭の 1 を削除する (長距離の場合) か、末尾の x または X を削除する (内線の場合) などの操作を実行するための追加ロジックが必要になる場合があります。