我正在尝试整合一个全面的正则表达式来验证电话号码.理想情况下它会处理国际格式,但它必须处理美国格式,包括以下内容:
我将回答我目前的尝试,但我希望有人能有更好的和/或更优雅的东西.
考虑从字符串中删除无效字符的要求.只需删除字符并替换为空格或string.Empty
.
char[] BAD_CHARS = new char[] { '!', '@', '#', '$', '%', '_' }; //simple example
foreach (char bad in BAD_CHARS)
{
if (someString.Contains(bad))
someString = someString.Replace(bad.ToString(), string.Empty);
}
Run Code Online (Sandbox Code Playgroud)
我真的很喜欢这样做:
if (BAD_CHARS.Any(bc => someString.Contains(bc)))
someString.Replace(bc,string.Empty); // bc is out of scope
Run Code Online (Sandbox Code Playgroud)
问题: 您对重构此算法或任何更简单,更易于阅读,高性能,可维护的算法有什么建议吗?