【问题标题】:Allow edu domain emails in form jquery允许以 jquery 形式发送 edu 域电子邮件
【发布时间】:2022-01-12 10:27:41
【问题描述】:

我尝试了各种解决方案,但都没有奏效。 JavaScript 不是很好,尤其是 RegEx。 在网上找到了这个解决方案,但无法修改。

基本上我需要在电子邮件字段中允许 EDU 域。我认为应该是@ohio.edu 或@ohio.edu.com 或类似的东西。怎么能说@后面没有“edu”,就不能注册了?

$(".single-memberpressproduct.postid-1945 .mepr-submit").click(function() {
  validateEmail(jQuery("input#user_email1").val());
  return false;
});

function validateEmail(email) {
  var emailRegx = /b(?:(?![_.-])(?!.*[_.-]{2})[a-z0-9_.-]+(?<![_.-]))@(?:(?!-)(?!.*--)[a-z0-9-]+(?<!-).)*.edub/i;
  if (emailRegx.test(email)) {
    if (email.indexOf('@edu.com', email.length - '@edu.com'.length) !== -1) {
      alert('Submission was successful.');
    } else {
      alert('Not a valid e-mail address @.');
    }
  } else {
    alert('Not a valid e-mail address.');
  }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<form class="single-memberpressproduct postid-1945">
  <input type="text" id="user_email1" value="" />
  <input type="submit"  class="mepr-submit" />
</form>

【问题讨论】:

  • 我给你做了一个sn-p。请更正我对您的 HTML 的任何假设。另外我强烈建议您使用提交事件并使用 event.reventDefault() 而不是单击提交按钮
  • *.edub 应该是什么?
  • @mplungjan 不确定,我复制了解决方案。你在哪里制作的 sn-p?
  • 我在您的问题中添加了您的代码的 sn-p。重新加载页面。如果您在 edub 结束您的正则表达式,您将无法匹配 .edu

标签: javascript jquery validation


【解决方案1】:

我最终使用了不同的方法。

<script>
jQuery('.single-memberpressproduct.postid-1945 .mepr-submit').attr("disabled", "disabled"); 
var youtubeRegex = /edu/i;
jQuery('input#user_email1').keyup(function(){
    jQuery(".single-memberpressproduct.postid-1945 .mepr-submit").attr("disabled", !youtubeRegex.test(this.value));
});
</script>

【讨论】:

  • youtubeRegex ??? edu 测试的奇怪名称
  • 还有this.value.includes("edu")
猜你喜欢
  • 2012-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-07
  • 2012-09-30
  • 2022-07-17
  • 2013-04-02
  • 1970-01-01
相关资源
最近更新 更多