简体   繁体   中英

Format String to Match Specific Pattern

I am trying to figure out how to format a string to a specific pattern.

When a user is entering their employee id number, they often get confused on what is expected from them. Because they are often told that their employee id is either a 5 digit or 4 digit number depending on when they were hired.

For example, my employee id number is E004033 but for most of our systems, I just have to enter 4033 and the system will find me.

We are trying to add this to one of our custom pages. Basically what I want to do is format a string to always look like E0XXXXX

So if they enter 4033 the script will convert it to E004033 , if they enter something like 0851 it will convert it to E000851 or if they enter 11027 it will convert it to E011027

Is there a way basically add padding zeros and a leading E if they are missing from the users input?

You can simply:

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

To remove an existing leading E(s)

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

Make sure the user's input is an integer, then format to 6 spaces using String.Format.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM