因此,我们需要使用外部javascript文档来验证表单,我的代码将不正确地验证任何主意,为什么?

时间:2019-05-10 04:31:28

标签: javascript forms

我已经为我的javascript代码设置了模式并设置了错误消息,但是似乎无法找出如何强制其将““ @”“。”“作为一种格式,因为它将接受单个出于某些原因有效的字母

  function myFunction3() {
    var message, x, j;
    message = document.getElementById("message3");
    message.innerHTML = "";
    x = document.getElementById("Email").value;
    try {
    if (x == "") throw "Required Field";
    if (x =  /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/) throw "Valid";


      }
   catch(err) {
    message.innerHTML = err;

  }
  }

1 个答案:

答案 0 :(得分:0)

您需要做的是设置有效的regex测试。看起来像这样:

function myFunction3() {
    let message, x, j;
    let RegExp = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/; // Change this
    message = document.getElementById("message3");
    message.innerHTML = "";
    x = document.getElementById("Email").value;

    if (x === '') return 'Required Field';
    else if (RegExp.test(x)) return 'Valid';
    else return 'Value not valid';
}

我发现使用https://regexr.com/之类的正则表达式工具确实有助于获得正确的验证。由于您仅指定“出于某些原因接受单个字母为有效字母”,因此我不确定您需要使用哪种确切的表达方式,但是如果您愿意,我可以帮助您创建一个:)