Javascript:字段验证

Javascript:字段验证,javascript,validation,email,field,Javascript,Validation,Email,Field,因此,我一直在互联网上寻找一些简单的javascript代码,这些代码可以让我在字段为空时发出警报,在@不存在时发出另一个警报。我一直在寻找正则表达式、html和不同的插件。但是,我需要在纯Javascript代码中执行此操作。你知道如何用一种简单的方法来实现吗 请,如果你认为这个问题不属于这里或者是愚蠢的,请告诉我在哪里可以找到这些信息,而不是侮辱我。我对javascript几乎没有经验 function test(email, name) { } 您必须找到您想要的元素的对象,如复选框

因此,我一直在互联网上寻找一些简单的javascript代码,这些代码可以让我在字段为空时发出警报,在@不存在时发出另一个警报。我一直在寻找正则表达式、html和不同的插件。但是,我需要在纯Javascript代码中执行此操作。你知道如何用一种简单的方法来实现吗

请,如果你认为这个问题不属于这里或者是愚蠢的,请告诉我在哪里可以找到这些信息,而不是侮辱我。我对javascript几乎没有经验

function test(email, name) {


}

您必须找到您想要的元素的对象,如复选框等

<input type="text" name="email" id="email" />
这是非常基本的。使用regexp可以测试它是真实的电子邮件还是垃圾。我建议阅读一些关于JS和HTML的内容

function test_email(field_id, field_size) {
var field_value = $('#'+field_id+'').val();
error = false;
var pattern=/^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
if(!pattern.test(field_value)){
    error = true;
    $('#'+field_id+'').attr('class','error_email');
}
return error;

}

这将检查空字符串以及@符号:

    if(a=="")
        alert("a is empty");
    else if(a.indexOf("@")<0)
        alert("a does not contain @");

如果要验证电子邮件,请在给定的正则表达式中使用以下代码:

<input type="text" name="email" id="emailId" value="" >
<button onclick = "return ValidateEmail(document.getElementById('emailId').value)">Validate</button>
<script>
     function ValidateEmail(inputText){  
           var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;  
       if(inputText.match(mailformat)) {  
         return true;  
       }  
       else {  
           alert("You have entered an invalid email address!");  
           return false;  
       }  
    } 
</script>

这是小提琴:

你可以这样做:

var input = document.getElementById('email');

input.onblur = function() {
  var value = input.value

  if (value == "") {
    alert("empty");
  }

  if (value.indexOf("@") == -1) {
     alert("No @ symbol");
  }

}

虽然这不是检查电子邮件地址的可靠解决方案,但有关更详细的解决方案,请参阅以下参考资料:

--更新--

我已经意识到没有可用于target的IE,因此输入字段需要如下所示:

document.getElementsByTagName("input")
使用此代码将选择页面上的所有输入字段。这不是我们要找的,我们要针对一个特定的输入字段。在没有类或ID的情况下执行此操作的唯一方法是按键选择它,如下所示:

document.getElementsByTagName("input")[0]
如果没有看到所有的HTML,我就不可能知道要使用的正确键,因此您需要计算页面上输入字段的数量以及输入字段所在的位置

1st input filed  = document.getElementsByTagName("input")[0]
2nd input filed  = document.getElementsByTagName("input")[1]
3rd input filed  = document.getElementsByTagName("input")[2]
4th input filed  = document.getElementsByTagName("input")[3]
etc...

希望这能有所帮助。

也许可以将其更改为:trimdocument.getElementByIdemail.value==因为如果该值只包含一个空格,则代码会将其读取为正在填充。True。但它仍然不够,因此如果他想要更好的表单验证,他将需要使用regexp。我忘记在我的问题中编写此代码,但我无法触摸html代码,并且其中当前没有可以连接的id。然后,应该有类似的方式:document.forms[0]。inputname。如果有name,那么document.formname.inputname也应该可以工作。通过这个你可以找到电子邮件地址是否有效。看起来像jQuery,它不是纯Javascript代码:检查空字符串时使用trim。我忘了在我的问题中写这个,但是我不能接触html代码,而且目前没有可以连接的id。我知道,有一个解决方案,但是如果html发生变化,你的JS就会崩溃,我将更新我的答案。@CiaranBaselmans-不幸的是,IE8及以下版本不支持trim。@CiaranBaselmans不幸的是,我不知道以前使用过任何函数,我能找到的任何资源都建议为较旧的浏览器构建您自己的trim函数,因此我只能假设这是以前的做法。请看这里:我忘了在我的问题中写这个,但是我不能触摸html代码,并且当前没有可以连接它的id。这看起来像是要走的路,但我不确定如何执行。我可以把它放在我原来帖子的{}里吗?或者我还需要添加其他东西吗?
document.getElementsByTagName("input")[0]
1st input filed  = document.getElementsByTagName("input")[0]
2nd input filed  = document.getElementsByTagName("input")[1]
3rd input filed  = document.getElementsByTagName("input")[2]
4th input filed  = document.getElementsByTagName("input")[3]
etc...