【发布时间】:2021-11-07 06:36:14
【问题描述】:
我正在使用 indexOf 来查看电子邮件是否包含特定文本以外的任何内容。
例如,我想检查电子邮件是否在 @ 符号后不包含“usa”,并显示错误消息。
我首先拆分文本并删除@符号之前的所有内容:
var validateemailaddress = regcriteria.email.split('@').pop();
然后,我检查文本是否不包含“usa”:
if(validateemailaddress.indexOf('usa')){
$('#emailError').show();
}
上述检查的内容似乎不正确。它有效 - 我可以输入电子邮件,如果它不包含“美国”,则会显示错误消息。
无论如何,当我添加额外的检查时,例如如果电子邮件不包含“可以”,那么无论如何都会显示错误消息。
如下:
if(validateemailaddress.indexOf('usa') || validateemailaddress.indexOf('can')){
$('#emailError').show();
}
如上所述,使用上述方法,无论电子邮件是否包含文本,都会显示错误消息。
我要做的就是检查电子邮件是否包含“usa”或“can”,如果没有,则显示错误消息。
我怎样才能做到这一点?
【问题讨论】:
-
但是我如何检查电子邮件是否不包含文本?
-
只是为了解释塞巴斯蒂安所说的,当使用 indexOf 时,你总是得到一个数字,其中 -1 表示它没有找到,它仍然会进入你的 if,使用包含将返回 true 或 false,因此不会输入if,也可以这样做例如:validateemailaddress.indexOf('usa') > -1
标签: javascript jquery validation indexof