I have the following regular expression... This one does not allow empty String. How do I have to manipulate?
var phoneReg = new RegExp(/^\+?[0-9]+(\([0-9]+\))?[0-9-]*[0-9]$/i);
I believe that the following would work:
/^$|^\+?[0-9]+(\([0-9]+\))?[0-9-]*[0-9]$/i
I've inserted ^$| at the beginning of your regex. The pipe (|) is called an "alternation" indicator and says that either the expression before it or after it must match. ^$ will simply match a string with no characters between the start and end of input. The result: an empty string or the original expression.
You can put a ^$| in front which in which ^ = beginning, $ = end, | = or this other thing to the right.
var phoneReg = new RegExp(/^$|^\+?[0-9]+(\([0-9]+\))?[0-9-]*[0-9]$/i);