相同的正则表达式不能在不同的输入字段上工作?

时间:2019-05-03 11:16:57

标签: javascript regex if-statement

我对正则表达式和某些if语句有疑问。我的经典表格带有“ 名称”,“ 姓氏”和“ 电子邮件”。

我正在对这些 if语句

使用简单的验证

function addTask(e) {

    const filter = /^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$/;
    const filterName = /[a-zA-Z]/
    

    if (!filter.test(email2.value)) {
        alert('please enter valid mail')


    }
    if (!filterName.test(lastName.value)) {

        showError('Please check your last name');
    }

    if (!filterName.test(yourName.value)) {
        showError('Please check your name');
     

    } else { 

        save(yourName.value, lastName.value, email2.value, text.value);

        const div = document.createElement('div');
        div.className = "testimonial";

        const div2 = document.createElement('div');
        div2.className = "pic";

        div.appendChild(div2);

        const img = document.createElement('img');
        img.src = "tormund.png";

        div2.appendChild(img);

        const p = document.createElement('p');
        p.className = "description";
        p.appendChild(document.createTextNode(text.value));

        div.appendChild(p);

        const h3 = document.createElement('h3');

        h3.className = "title";
        h3.appendChild(document.createTextNode(yourName.value));
        div.appendChild(h3);
        
        cards.appendChild(div);

    }


    e.preventDefault();
}
  
<input id="name" type="text" name="field1" placeholder="Name*" >
                                <input id="lastName" type="text" name="field2" placeholder="Last name*">

                                <input id="emailRev" type="email" name="field3" placeholder="Email *">

名称电子邮件,如果语句运行正常,它们将不会直接进入“ else statement”,并且会立即停止运行该功能,但是当涉及到姓氏,代码直接继续到“ else ”并执行我的卡创建。

还要提一下,两个输入字段的正则表达式均应仅是文本。谁知道我在哪里弄错了吗?

0 个答案:

没有答案