2017-01-26 3 views
1

Я пытаюсь выяснить, как форматировать строку для определенного шаблона.Формат строки для соответствия конкретному шаблону

Когда пользователь вводит номер своего сотрудника, он часто путается с ожидаемым от них. Потому что им часто говорят, что их идентификатор сотрудника является либо 5-значным, либо 4-значным числом в зависимости от того, когда они были наняты.

Например, мой номер сотрудника - E004033, но для большинства наших систем мне просто нужно ввести 4033, и система найдет меня.

Мы пытаемся добавить это на одну из наших пользовательских страниц. В основном то, что я хочу сделать, это отформатировать строку, чтобы всегда выглядеть E0XXXXX

Так что, если они входят в 4033 скрипт преобразует его в E004033, если они ввести что-то вроде 0851 он преобразует его в E000851 или если они входят 11027 оно преобразует его в E011027

Есть ли способ в основном добавить нулевые корни и ведущие E, если они отсутствуют у пользователей?

ответ

1

Убедитесь, что ввод пользователя представляет собой целое число, то формат 6 пространств с использованием String.Format.

int parsedId; 
bool ok = int.TryParse(id, out parsedId); 
if (ok) 
{ 
    return String.Format("E{0:000000}", parsedId); 
} 
+0

Это действительно оказалось лучшим решением, потому что мой коллега указал мне, что я забыл включить людей, которые используют имя пользователя, например 'jsmith'. который зарезервирован только для более высоких взлетов, которым выплачивается много, чтобы помнить номера своих сотрудников. –

2

Вы можете просто:

var formattedId = "E" + id.PadLeft(6, '0'); 

Чтобы удалить существующий ведущий E (s)

var text = "E" + val.TrimStart(new[] {'E'}).PadLeft(6, '0'); 
+0

Что делать, если они ввели 'E004033', не сделали бы строку' EE004033'? –

+0

Да, я предполагаю, что есть проверка на исходное хорошо сформированное значение. –

+0

Думаю, я мог бы обернуть его в оператор 'if'. –