I need to validate Textbox input as credit card number. I already have regex for different credit cards:
- Visa:
^4[0-9]{12}(?:[0-9]{3})?$ - Mastercard:
^([51|52|53|54|55]{2})([0-9]{14})$ - American Express:
^3[47][0-9]{13}$
and many others.
The problem is, I want to validate using different regex based on different users. For example: For user1, Visa and Mastercard are available, while for user2, Visa and American Express are available. So I would like to generate a final regex string dynamically, combining one or more regex string above, like:
user1Regex = Visa regex + "||" + Mastercard regex
user2Regex = Visa regex + "||" + American Express regex
Is there a way to do that? Thanks,
You did not state your language but for whatever reason I suspect it’s JavaScript. Just do:
This simply combines the two patterns with a pipe
|character, which indicates alternative matches. Each pattern is also wrapped in parentheses to group them.You can also use
(?:)for speedier execution (non-capturing grouping) but I have omitted that for readability.