如何使用正则表达式可以为空?

时间:2015-05-14 09:15:40

标签: javascript regex

我正在做一些简单的网络应用来练习我的技能。

我正在使用正则表达式验证我的手机输入,

var reg = /^[\s()+-]*([0-9][\s()+-]*){6,20}$/;

if(!reg.test($('#input-phone').val())){
    alert('error');
}

它正常工作但不能为空。我不知道如何修改它以便能够拒绝空场。

2 个答案:

答案 0 :(得分:2)

检查是否有值,然后使用正则表达式

var reg = /^[\s()+-]*([0-9][\s()+-]*){6,20}$/;
var phone = $('#input-phone').val();
if (phone.length && !reg.test(phone)) {
    alert('error');
}

答案 1 :(得分:0)

表达式匹配空字符串,因为它的所有单个序列都是可选

确保表达式中有一些数据的最简单方法是在开头为单个字符添加前瞻:

var reg = /^(?=.)[\s()+-]*([0-9][\s()+-]*){6,20}$/;

但是,在进行正则表达式测试之前,显式测试变量是否为空可能更容易。