检查输入值是否有“。” (点)(Javascript)

时间:2013-06-14 01:24:41

标签: javascript function validation indexof

好的,我正在处理这个联系表格here,一切似乎都运作良好。它检查电子邮件地址是否带有带有以下代码的“@”符号:(这是一个功能,为了方便起见,这里没有显示)。

JS:

var at = "@";

if (email.indexOf(at) == -1 || email.indexOf(at) == 0) {
   success = false;
   document.getElementById("email-error").innerHTML = "That's not an email!";
   document.getElementById("email-good").innerHTML = "";
 }

HTML:

<input onfocus="return validation()" type="text" name="email" id="email"><span id="email-error"></span><span id="email-good"></span>

我想查看是否有“。” (点)在电子邮件值中使用以下代码,但它不起作用!

  var at = "@";
  var dot = ".";
if (email.indexOf(at) == -1 || email.indexOf(at) == 0 || email.indexOf(dot) == -1 ||    email.indexOf(dot) == 0) {
success = false;
document.getElementById("email-error").innerHTML = "That's not an email!";
document.getElementById("email-good").innerHTML = "";
}

另外,如果可能,有办法检查是否有多个“@”或“。” ?我试过&gt;和!= 1已经。

3 个答案:

答案 0 :(得分:1)

如果您尝试使用javascript检查有效的电子邮件地址,我强烈建议您使用正则表达式检查。

有关详细信息,请参阅以下帖子:Validate email address in JavaScript?

答案 1 :(得分:0)

  

有没有办法检查是否有多个“@”或“。” ?

是的,您可以执行String.prototype.split并检查长度

var email = 'a@b.c';

if (email.indexOf('@') < 1 || // @ index -1 or 0
    email.split('@').length > 2 || // more than one @
    email.indexOf('.') < 1) { // . index -1 or 0
    success = false;
    // etc
}

请注意,某些电子邮件地址可以有多个.,例如someone@ukogbani.co.uk并且您无法验证地址是否存在,除非您向其发送内容并获得预期的响应。

一个非常简单的 RegExp 检查是/^[^ @]+@[^ @]+$/,因为除非它是一个非常特殊的电子邮件地址,否则它不会包含空格或多个@符号,但是可以归,例如tld com,例如tldadmin@com

答案 2 :(得分:0)

if(filter_var($ _ POST ['email'],FILTER_VALIDATE_EMAIL)){

   $email = $_POST['email'];
  } 
  else {
  exit("The Email Address you have entered is not valid.");
  }