我正在使用下面的代码来确定输入到textBoxAddress.Text中的值是否是数字(传真号码)或电子邮件地址。如果传真号码有空格,下面的isNumber测试将不起作用,所以我试图用正则表达式删除所有空白区域,空格不被删除。你能发现我的问题吗?
谢谢。
string faxOrEmail = textBoxAddress.Text;
faxOrEmail = Regex.Replace(faxOrEmail, @"\s+", " "); //<---Regex
bool testForFax = IsNumber(faxOrEmail);
if (testForFax == true)
{
//send fax
MessageBox.Show(faxOrEmail);
}
else
{
backgroundWorker1.RunWorkerAsync(); //Send Email
}
static bool IsNumber(string value)
{
// Return true if this is a number.
int number1;
return int.TryParse(value, out number1);
}
答案 0 :(得分:1)
试试这个:
faxOrEmail = Regex.Replace(faxOrEmail, @"\s+", "");
我不太了解C#,但如果你想删除空格,请尝试用空字符串替换它而不是空格:)
答案 1 :(得分:1)
您正在用空格替换空格!使用String.Empty来避免这些问题:
faxOrEmail = Regex.Replace(faxOrEmail, @"\s+", String.Empty);
答案 2 :(得分:1)
您正在用一个空格替换一个或多个空格。
Regex.Replace(faxOrEmail, @"\s+", string.Empty);
这不会删除短划线,也不需要您的IsNumber方法。
string.Join(string.Empty, faxOrEmail.ToCharArray().Where(x=> char.IsNumber(x)))
答案 3 :(得分:0)
以上所有:
或
根本不要使用正则表达式。只需使用替换方法,然后将" "
替换为""
答案 4 :(得分:0)
如果要用一个空格替换2个或更多个连续空格,请执行以下操作:
faxOrEmail = Regex.Replace(faxOrEmail, @"\s{2,}", " ");
如果要删除所有空格,请执行以下操作:
faxOrEmail = Regex.Replace(faxOrEmail, @"\s+", string.Empty);
答案 5 :(得分:0)
如果faxOrEmail仅包含空格(“”)且没有标签,那么您可以使用:
faxOrEmail = faxOrEmail.Replace(" ", "");
另一方面,您也可以删除所有内容(包括破折号,斜线,括号等),但使用正则表达式删除十进制数字:
faxOrEmail = Regex.Replace(faxOrEmail, "[^0-9]", "");