У меня есть номер телефона, который человек вводит в нашу программу. Мы не проверяем номера на стороне пользователя (не спрашивайте ...). Итак, я использовал RegEx для удаления всех иностранных символов и сравнения с другим RegEx (это то, чего хочет босс).StringBuilder, Подстрока не работает, если строка слишком короткая
Как только я создал простую строку для этого номера, я вручную помещаю дефисы в строку, чтобы наша база данных могла использовать ее для сравнения.
К сожалению, когда пользователь помещает письмо в строку, строка сокращается на один символ, заставляя мою подстроку выдавать ошибку. Как бы вы переписали этот код (я думаю, что «если» заявление, но, будучи тем, что я довольно новичок в этом, и я не хочу раздувать код, я на самом деле не доверяю себе на этом этапе.)
telephone = Regex.Replace(telephone, "[^0-9.]", "");
StringBuilder sb = new System.Text.StringBuilder();
sb.Append(telephone.Substring(0, 3)
+ "-" + telephone.Substring(3, 3)
+ "-" + telephone.Substring(6, 4));
return sb.ToString();
Я проверил это link, и это было не то, что я искал.
UPDATE:
Ожидаемый результат - будет по-прежнему работать с менее чем 10 номеров (в том числе менее 4 или 3 номера). В нашей таблице все еще будут заполнены эти параметры. У нас есть другая фильтрация на панели, поэтому панель не будет большой на основе 3-значного числа
Пользователь просто получит больший список (это основано на протоколе компании). Когда я запускаю его в настоящее время, программа просто зависает без обновлений нашей панели. Я должен физически перезапустить отладчик из VS, потому что нет возможности выйти из нашей программы.
Это была смесь ответов. Я проверил тот, который я использовал для фактического телефонного самого номера:
telephone = Regex.Replace(telephone, "[^0-9.]", "");
if (telephone.Length > 3)
telephone = telephone.Insert(3, "-");
if (telephone.Length > 7)
telephone = telephone.Insert(7, "-");
return telephone;
Тогда мне пришлось скорректировать хранимую процедуру для правильной работы:
WHERE OfficePhone LIKE '%" + @newPhone + "%' ";
Спасибо всем за помощь!
Так что вы хотите, чтобы это сделать * с более коротким текстом? Пример ввода, ожидаемый результат и то, что вы пробовали, все это помогло бы ... –
Ваше обновление («все равно будет работать») не отвечает на вопросы. Что должен сделать код для строки 'phone', если он меньше заданного количества символов? – CodeCaster
Нет смысла использовать 'StringBuilder', если вы просто собираетесь объединить строки, которые вы передаете в один вызов' Append'. – juharr