У вас есть файл email.php в папке конфигурации? Возможно, в вашей конфигурации есть проблема.
Используйте Соответствие в Regex, чтобы разделить, затем произвести отформатированную строку с match.groups
Regex regex = new Regex(@"(?<first3chr>\d{3})(?<next3chr>\d{3})(?<next4chr>\d{4})");
Match match = regex.Match(phone);
if (match.Success) return "(" + match.Groups["first3chr"].ToString() + ")" + " " +
match.Groups["next3chr"].ToString() + "-" + match.Groups["next4chr"].ToString();
Если можно добраться i["MyPhone"]
как long
, можно использовать long.ToString()
метод для форматирования его:
Convert.ToLong(i["MyPhone"]).ToString("###-###-####");
Посмотрите страницу MSDN на Строки Числового формата .
Стараться использовать долго, а не интервал: интервал мог переполниться.
Отметьте, этот ответ работы с типами числовых данных (интервал, долго). Если Вы запустите со строки, необходимо будет преобразовать ее в число сначала. Кроме того, примите во внимание, что необходимо будет проверить это, начальная строка является по крайней мере 10 символами в длине.
От хорошая страница , полная примеров:
String.Format("{0:(###) ###-####}", 8005551212);
This will output "(800) 555-1212".
, Хотя regex может работать еще лучше, имейте в виду старую кавычку программирования:
Некоторые люди, когда столкнуто с проблемой, думают, что “I знают, I’ll используют регулярные выражения. ” Теперь у них есть две проблемы.
- Jamie Zawinski, в comp.lang.emacs
Я предпочитаю использовать регулярные выражения:
Regex.Replace("1112224444", @"(\d{3})(\d{3})(\d{4})", "$1-$2-$3");
Необходимо будет повредить его в подстроки. В то время как Вы могли делать это без любых дополнительных переменных, это не было бы особенно хорошо. Вот одно потенциальное решение:
string phone = i["MyPhone"].ToString();
string area = phone.Substring(0, 3);
string major = phone.Substring(3, 3);
string minor = phone.Substring(6);
string formatted = string.Format("{0}-{1}-{2}", area, major, minor);
Насколько я знаю, что Вы не можете сделать этого со строкой. Формат... необходимо было бы обработать это сами. Вы могли просто разделить все нечисловые символы и затем сделать что-то как:
string.Format("({0}) {1}-{2}",
phoneNumber.Substring(0, 3),
phoneNumber.Substring(3, 3),
phoneNumber.Substring(6));
Это предполагает, что данные были введены правильно, который Вы могли использовать регулярные выражения для проверки.
Function FormatPhoneNumber(ByVal myNumber As String)
Dim mynewNumber As String
mynewNumber = ""
myNumber = myNumber.Replace("(", "").Replace(")", "").Replace("-", "")
If myNumber.Length < 10 Then
mynewNumber = myNumber
ElseIf myNumber.Length = 10 Then
mynewNumber = "(" & myNumber.Substring(0, 3) & ") " &
myNumber.Substring(3, 3) & "-" & myNumber.Substring(6, 3)
ElseIf myNumber.Length > 10 Then
mynewNumber = "(" & myNumber.Substring(0, 3) & ") " &
myNumber.Substring(3, 3) & "-" & myNumber.Substring(6, 3) & " " &
myNumber.Substring(10)
End If
Return mynewNumber
End Function