正则表达式 - 也允许空字符串

时间:2013-07-02 15:29:08

标签: javascript regex

我有以下正则表达式...这个不允许空字符串。 我该如何操纵?

var phoneReg = new RegExp(/^\+?[0-9]+(\([0-9]+\))?[0-9-]*[0-9]$/i);

3 个答案:

答案 0 :(得分:5)

只需使用“零或一个”运算符?,例如:

/^(?:regex)?$/
           ^

(?:regex)只会使相关的基础无法使用(即,如果有的话,无需更改$X\X?X索引。

答案 1 :(得分:3)

我相信以下内容可行:

/^$|^\+?[0-9]+(\([0-9]+\))?[0-9-]*[0-9]$/i

我在正则表达式的开头插入了^$|。管道(|)被称为“交替”指示符,表示它之前或之后的表达式必须匹配。 ^$只会匹配输入开头和结尾之间没有字符的字符串。结果:空字符串或原始表达式。

答案 2 :(得分:3)

你可以放一个^ $ |在前面哪个^ =开头,$ =结束,| =或者右边的其他东西。

var phoneReg = new RegExp(/^$|^\+?[0-9]+(\([0-9]+\))?[0-9-]*[0-9]$/i);