Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Javascript: GUID: RegEx: string to GUID

I have a textbox that a user can paste into using Ctrl+V. I would like to restrict the textbox to accept just GUIDs. I tried to write a small function that would format an input string to a GUID based on RegEx, but I can’t seem to be able to do it. I tried following the below post:
Javascript string to Guid

function stringToGUID()
{
    var strInput = 'b6b954d9cbac4b18b0d5a0f725695f1ca98d64e456f76';
    var strOutput = strInput.replace(/([0-f]{8})([0-f]{4})([0-f]{4})([0-f]{4})([0-f]{12})/,"$1-$2-$3-$4-$5");
    console.log(strOutput );
    //from my understanding, the input string could be any sequence of 0-9 or a-f of any length and a valid giud patterened string would be the result in the above code. This doesn't seem to be the case;
    //I would like to extract first 32 characters; how do I do that?

}

>Solution :

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

I suggest that you remove the dashes, truncate to 32 characters, and then test if the remaining characters are valid before inserting the dashes:

function stringToGUID()
{
    var input = 'b6b954d9cbac4b18b0d5a0f725695f1ca98d64e456f76';
    let g = input.replace("-", "");
    g = g.substring(0, 32);
    if (/^[0-9A-F]{32}$/i.test(g)) {
        g = g.replace(/(.{8})(.{4})(.{4})(.{4})(.{12})/, "$1-$2-$3-$4-$5");
    }
    console.log(g);
}

stringToGUID();

(The i at the end of the regex makes it case-insensitive.)

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading