Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
97
rated 0 times [  103] [ 6]  / answers: 1 / hits: 32541  / 10 Years ago, fri, july 4, 2014, 12:00:00

I'm trying to build a regular expression that checks to see if a value is an RFC4122 valid GUID. In an attempt to do that, I'm using the following:


var id = '1e601ec7-fb00-4deb-a8bb-d9da5147d878';
var pattern = new RegExp('/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i');
if (pattern.test(id) === true) {
console.log('We have a winner!');
} else {
console.log('This is not a valid GUID.');
}

I'm confident that my GUID is a valid GUID. I thought I grabbed the correct regular expression for a GUID. However, no matter what, I always get an error that says its not a GUID.


What am I doing wrong?


More From » regex

 Answers
12

You mustn't include the / characters in the regex when you're constructing it with new RegExp, and you should pass modifiers like i as a second parameter to the constructor:



var pattern = new RegExp('^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$', 'i');


But in this case there's no need to use new RegExp - you can just say:



var pattern = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;

[#70316] Wednesday, July 2, 2014, 10 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
nestorjarettg

Total Points: 451
Total Questions: 108
Total Answers: 108

Location: Rwanda
Member since Thu, Feb 10, 2022
2 Years ago
;