I have a field on my site that allows the user to enter data. Often within that they will include a MAC address.
I need a way to find the MAC address within the string and if it is a delimited format offer to reformat it for them and then update the string.
As I see it there are four things to do here:
- With in string find MAC address delimited with
:
or-
eg:00:12:34:56:78:90
or00-12-34-56-78-90
and return this as a var. - If var exists show a confirm box asking them if they want it formatting. I can do this is the var is there.
- If they confirm reformat MAC removing delimiter - I think I can do.
- Update string with new MAC address - this I'm assuming is a simple find of old var and replace with new var.
For example:
The user enters 'This is a string containing 00:12:34:56:78:90 within it.'
I need to find 00:12:34:56:78:90
show confirm, change MAC to 001234567890
and update string so it reads:
'This is a string containing 001234567890 within it.'
The MAC can appear anywhere in the string, start middle or end and may have whitespace around it. The delimiter will be : or -
Does anyone have any ideas how I can do this, specifically step 1 ?
Thanks
CodePudding user response:
Regex used from : What is a regular expression for a MAC Address?
Slightly modified to match the MAC Address present at any position
let macRegex = /([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})/g;
let text = 'My Wifi MAC Address is 2C:54:91:88:C9:E3 and my bluetooth MAC Address is 3D-F2-C9-A6-B3-4F';
let macPresent = macRegex.test(text);
let getMac = text.match(macRegex);
let colonOrHypenRegex = /[:-]/g;
let firstMacReplaced = getMac[0].replaceAll(colonOrHypenRegex, '');
console.log({macPresent, getMac, firstMacReplaced})