regexregex-negationregex-lookarounds

Multiple Conditions in Validation Regex


I am more or less a regex novice. I tried to get the following conditions into a regex:

Resulted in the following regex:

^\S[\d\/. ()\-+]*\S$

But now I try to apply two more conditions:

My problem is how to merge those two conditions into the existing regex string above, as excluding + [+]{1,2} and () [(]{1} [)]{1} doesn't make much sense because I'm trying to make general statements in no particular order so that I would be able to chain it.


Solution

  • Use this:

    ^(?=\S)(?=(?:[^+]*\+){0,2}[^+]*$)(?=(?:[^(]*\()?[^(]*$)(?=(?:[^)]*\))?[^)]*$)[- .()+0-9]*[-.+()0-9]$
    

    In the regex demo you can play with the input to check what matches and doesn't.

    Explanation

    Reference