Javascript Regex 同时验证 URL 和 Empty



我试图编写一个正则表达式来与位置绝对 jQuery 验证插件一起使用,如果字符串留空或它是一个无效的 URL,则给出错误。它适用于 URl,但如果存在空字符串,则不会给出错误。这是正则表达式

 "regex": /^S$|^(http[s]?://){0,1}(www.){0,1}[a-zA-Z0-9.-]+.[a-zA-Z]{2,5}[.]{0,1}/,

有人能说出正则表达式中出了什么问题吗?

编辑:

我正在使用这个插件进行jQuery验证

演示:转到此 URL,然后在 URL 验证部分中,删除 HTTP 并查看错误消息

http://www.position-relative.net/creation/formValidator/demos/demoValidators.html

当我将必需和 URL 验证器一起添加时,它会触发 2 个错误。但只有网址验证器,它并没有说它是一个无效的URL。我只需要 1 个错误,用于空和网址无效。

https://github.com/posabsolute/jQuery-Validation-Engine

谢谢

您可以使用

data-errormessage 为所有错误设置相同的一般错误消息,因此无论该字段是空还是具有无效值,您都会收到相同的消息。

你试过jQuery URL验证吗?

我写了一个小例子,如何快速轻松地验证电子邮件。无需使用插件的麻烦。如果你只使用它一次,你可以只使用

var emailaddressVal = 'nobody@example.cpom';
var emailReg = /^([w-.]+@([w-]+.)+[w-]{2,4})?$/;
if(emailReg.test(emailaddressVal) && emailaddressVal.length > 0)
{
    alert('Your email is valid.');
}
else
{
    alert('The email is invalid')
}
但是,将其

放在函数中,以便您可以多次使用它。 而不是将其放在函数中,例如:

// Email check function 
function checkEmail(email)
{
    var emailReg = /^([w-.]+@([w-]+.)+[w-]{2,4})?$/;
    if(emailReg.test(email) && email.length > 0)
    {
        return true;
    }
    else
    {
        return false;
    }
}
// Ussage 
if(checkEmail('nobody@example.com'))
{
    alert('SUCCESS!!');
}
else
{
    alert('FAILED!!');
}

最新更新