'How to create a dynamic regex based on condition?
I'm trying to create a password generator where I can tick options (letters / numbers / special characters)...
For each ticked input, I want to generate a different regex pattern that accept wider range of characters, with at least white spaces accepted :
const alpha = alphaInputEl.checked;
const numeric = numericInputEl.checked;
const special = specialInputEl.checked;
return new RegExp(`/[
${alpha ? "a-zA-Z " : " "}
${numeric ? "0-9" : ""}
${special ? "$&+,:;=?@#|'<>.^*()%!-" : ""}
]/`)
But I can't test against that regex. How can I build that regex dynamically ?
Solution 1:[1]
Answering my own question. I removed the slashes to make it work.
Doc ref: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp
Working version:
return new RegExp(`[${alpha ? "a-z-A-Z " : " "}${numeric ? "0-9" : ""}${special ? "$&+,:;=?@#|'<>.^*()%!-" : ""}]`)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 |
