如何使用JQuery检查输入(电子邮件)字段是否包含特殊字符

时间:2015-04-01 16:34:37

标签: javascript jquery

目前,我正在使用以下代码,但它似乎不起作用。如果用户未能在输入字段中输入“@”符号,我想抛出错误。请多多包涵。感谢

我的以下代码是:

var emailaddressVal = $("input[name='emailAddress']").val().split('@').slice(1)[0].trim();

if(emailaddressVal .match(/@/) !== null) {
    alert('An @ symbol was not entered');
} 

2 个答案:

答案 0 :(得分:4)

看起来你做的工作比你需要的多得多。您的split()调用会搜索错误的字符,因此您可以停在那里查看该字符串是否已拆分。但这并不是表达意图的非常明确的方式。

如果您正在寻找特定角色,则不需要正则表达式。

为什么不

if ( $("input[name='emailAddress']").val().indexOf('@') > -1 ) { 
    /* we found an '@' character; handle as you like */ 
} else {
    /* NOT FOUND, handle as appropriate */
    alert("Missing a required '@' character");
}

indexOf如果找到字符串,则返回非负值。见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf

答案 1 :(得分:1)

indexOf怎么了?它并不总是那么复杂:

<input type="text" id="test">
document.getElementById('test').onkeyup = function() {
    if (this.value.indexOf('@')>-1) {
        alert('error');
    }        
}    

或jQuery

$("#test").on('keyup', function() {
    if ($(this).val().indexOf('@')>-1) {
        alert('error');
    }        
});    

演示 - &gt;的 http://jsfiddle.net/t49xdx56/