- Published on
Convert RegEx to String & String to RegEx in JavaScript
- Authors
- Name
- Ashik Nesin
- @AshikNesin
Recently, I ran into a problem where I wanted to pass RegEx via api.
The problem is that regular expressions are not JSON serializable. So if we try to convert a object that has RegEx to JSON, the regex item will be ignored.
For example,
const config = {
regex: /graph\.facebook\.com/i,
};
JSON.stringify(config);
// 👉 '{"denyUrls":{}}'
Solution
One way to overcome this is to convert the RegEx to string.
const config = {
regex: '/graph.facebook.com/i',
};
JSON.stringify(config);
// 👉 '{"regex":"\/graph\.facebook\.com\/i"}'
And then convert the string back to RegEx.
We can use regex-parser package for parsing a string as regular expression under the hood.
// npm install regex-parser
const RegexParser = require('regex-parser');
const config = JSON.parse('{"regex":"/graph.facebook.com/i"}');
config.regex = RegexParser(config.regex);
// 👉 {regex: /graph.facebook.com/i}