我有以下正则表达式...这个不允许空字符串。我该如何操作?
var phoneReg = new RegExp(/^\+?[0-9]+(\([0-9]+\))?[0-9-]*[0-9]$/i);
我有以下正则表达式...这个不允许空字符串。我该如何操作?
var phoneReg = new RegExp(/^\+?[0-9]+(\([0-9]+\))?[0-9-]*[0-9]$/i);
只需使用“零或一”运算符?
,例如:
/^(?:regex)?$/
^
(?:regex)
只是使相关的地面无法捕获(即无需更改您的$X
,\X
或?X
索引,如果有的话)。
我相信以下方法会起作用:
/^$|^\+?[0-9]+(\([0-9]+\))?[0-9-]*[0-9]$/i
我已^$|
在您的正则表达式的开头插入。管道 ( |
) 称为“交替”指示符,表示它之前或之后的表达式必须匹配。^$
将仅匹配输入的开头和结尾之间没有字符的字符串。结果:空字符串或原始表达式。
你可以放一个^$| 前面,其中 ^ = 开始,$ = 结束,| = 或右边的其他东西。
var phoneReg = new RegExp(/^$|^\+?[0-9]+(\([0-9]+\))?[0-9-]*[0-9]$/i);