我有以下正则表达式...这个不允许空字符串。 我该如何操纵?
var phoneReg = new RegExp(/^\+?[0-9]+(\([0-9]+\))?[0-9-]*[0-9]$/i);
答案 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);