JavaScript:Form:验证电子邮件地址,并在发送前使用start.with检查另一个字段

JavaScript:Form:验证电子邮件地址,并在发送前使用start.with检查另一个字段,javascript,forms,validation,email,Javascript,Forms,Validation,Email,我是一个十足的JavaScript noob,但我已经寻找解决方案很久了,似乎找不到它 我想做的是:在发送表单之前,检查输入的电子邮件地址是否有效,并检查电话字段的输入是否以http://开头 验证电子邮件地址非常有效。然而,第二部分并非如此。只发送表单,而不发送任何警报或任何东西 有人能启发我吗?谢谢大家! function validate(){ var email = document.getElementById('email').value; var phone = d

我是一个十足的JavaScript noob,但我已经寻找解决方案很久了,似乎找不到它

我想做的是:在发送
表单
之前,检查输入的电子邮件地址是否有效,并检查
电话
字段的输入是否以
http://
开头

验证电子邮件地址非常有效。然而,第二部分并非如此。只发送
表单
,而不发送任何
警报
或任何东西

有人能启发我吗?谢谢大家!

function validate(){
    var email = document.getElementById('email').value;
    var phone = document.getElementById('phone').value;
    var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;

    if (!filter.test(email)) {
        alert('Please enter a valid e-mail address.');

        return false;
    }

    else if (phone.StartsWith("http://")) {
        alert('Please correct your phone number.');

        return false;
    }
}
对于任何想知道:这应该是一个“简单的”垃圾邮件拦截器

如果在
phone
字段中检查除数字、加号、空格、连字符和点以外的任何字符,可能会更有趣


你觉得怎么样

您需要一个电话号码检查功能来确保号码正确无误。下面是:

您需要一个电话号码检查功能来确保号码正确。下面是:

首先回答您的问题:


编辑:现在JavaScript确实有


JavaScript在字符串对象上没有
'StartsWith'
方法。为此,您必须使用正则表达式。下面是一个例子:

function validate() {
    var email = document.getElementById('email').value;
    var phone = document.getElementById('phone').value;

    var emailFilter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
    var phoneFilter = /^http:\/\//;

    if (!emailFilter.test(email)) {
        alert('Please enter a valid e-mail address.');
        return false;
    }

    if (!phoneFilter.test(phone)) {
        alert('Please correct your phone number.');
        return false;
    }

    return true;
}
我创建了一个JSFIDLE来向您展示它是如何工作的:

但是:最好使用声明性方法而不是编程方法来验证表单。有很多工具可以做到这一点。其中一个是jQuery库,它为您提供了大部分繁重的列表:

它的工作原理是向字段中添加类,并让插件进行检查、错误显示和防止表单提交

只需补充一点:您的方法没有错,但是如果表单变得更大,并且您想要检查更多字段,那么您将不可避免地遇到其他人反复解决的复杂性。即使这意味着你用额外的插件增加了额外的复杂性,但一旦你开始把表单做大,这一切都是值得的


另外:用于电子邮件地址检查的正则表达式将不接受
+
符号,这是许多人用来创建特殊gmail帐户(如
john.doe)的符号+extraText@gmail.com
。使用我描述的库通常已经有了可靠的检查。这是使用现有库的另一个好处

首先回答您的问题:


编辑:现在JavaScript确实有


JavaScript在字符串对象上没有
'StartsWith'
方法。为此,您必须使用正则表达式。下面是一个例子:

function validate() {
    var email = document.getElementById('email').value;
    var phone = document.getElementById('phone').value;

    var emailFilter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
    var phoneFilter = /^http:\/\//;

    if (!emailFilter.test(email)) {
        alert('Please enter a valid e-mail address.');
        return false;
    }

    if (!phoneFilter.test(phone)) {
        alert('Please correct your phone number.');
        return false;
    }

    return true;
}
我创建了一个JSFIDLE来向您展示它是如何工作的:

但是:最好使用声明性方法而不是编程方法来验证表单。有很多工具可以做到这一点。其中一个是jQuery库,它为您提供了大部分繁重的列表:

它的工作原理是向字段中添加类,并让插件进行检查、错误显示和防止表单提交

只需补充一点:您的方法没有错,但是如果表单变得更大,并且您想要检查更多字段,那么您将不可避免地遇到其他人反复解决的复杂性。即使这意味着你用额外的插件增加了额外的复杂性,但一旦你开始把表单做大,这一切都是值得的


另外:用于电子邮件地址检查的正则表达式将不接受
+
符号,这是许多人用来创建特殊gmail帐户(如
john.doe)的符号+extraText@gmail.com
。使用我描述的库通常已经有了可靠的检查。这是使用现有库的另一个好处

谢谢,我一定会记住这个链接,以备将来参考。但是,在这种情况下,我想检查特定字段的开头,以便我可以将其应用于其他字段。谢谢,我一定会记住该链接,以备将来参考。不过,在这种情况下,我想检查一个特定的字段以什么开头,这样我就可以将其应用到其他字段中。谢谢,我一定会看看的!然而,我真的很想知道“我的”代码有什么问题,因为它不能工作。。。我试图将
else if
放入
if
中,但没有成功。再次感谢您。。。不过,我承认我现在有点困惑。。您的JSFIDLE有什么问题吗?我为JSFIDLE添加了错误的URL。我把它换成了正确的。鉴于您是该网站的新用户,我想补充一点,如果您认为我的提示有帮助,请投票并将其标记为正确答案。奖励有帮助的答案的人在将来询问有关stackoverflow的问题时会得到更多帮助。干杯。你好,再次感谢你。现在似乎工作得很好,非常感谢。当然,我还是会浏览你们所有人给我的链接,并试图记住这些方法,以备将来的案例使用。非常感谢。根据我刚才做的:
var phoneFilter=/(http:\/\/)(www)/。。。它似乎工作正常,我做对了吗?:)谢谢,我一定会看一看的!然而,我真的很想知道“我的”代码有什么问题,因为它不能工作。。。我试图将
else if
放入
if
中,但没有成功。再次感谢您。。。不过,我承认我现在有点困惑。。您的JSFIDLE有什么问题吗?我为JSFIDLE添加了错误的URL。我把它换成了正确的。鉴于您是该网站的新用户,我想补充一点,如果您认为我的提示有帮助,请投票并将其标记为正确答案。奖励有帮助的答案的人在将来询问有关stackoverflow的问题时会得到更多帮助。干杯。你好,再次感谢你