目前,我正在使用以下代码,但它似乎不起作用。如果用户未能在输入字段中输入“@”符号,我想抛出错误。请多多包涵。感谢
我的以下代码是:
var emailaddressVal = $("input[name='emailAddress']").val().split('@').slice(1)[0].trim();
if(emailaddressVal .match(/@/) !== null) {
alert('An @ symbol was not entered');
}
答案 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/ 强>