我必须检查用户输入与他们的输入电子邮件,以检查他们是否太相似,如果他们是我需要抛出一个错误。例如;互相检查输入jQuery
“用户名不能与电子邮件地址太相似,例如,如果电子邮件地址是[email protected],则用户名不能被查理。
我该怎么去做这件事?
编辑:我想检查用户名与电子邮件地址的第一部分,该部分@
我必须检查用户输入与他们的输入电子邮件,以检查他们是否太相似,如果他们是我需要抛出一个错误。例如;互相检查输入jQuery
“用户名不能与电子邮件地址太相似,例如,如果电子邮件地址是[email protected],则用户名不能被查理。
我该怎么去做这件事?
编辑:我想检查用户名与电子邮件地址的第一部分,该部分@
var email, username;
if (username === email.split('@')[0]) {
alert('failed');
}
此之前将比较用户名与电子邮件的用户名部分。
编辑: 的一点是,你可以通过email.split('@')[0]
得到用户名部分从电子邮件,那么如何类似由你定义。
function is_similar (str1, str2) {
// implement your similar logic here
// return true or false
}
function checkUsernameAndEmail(){
var email = document.getElementById("email").value;
var user = document.getElementById("username").value;
// check to see if the email contains the username in anypart
if(email.split("@")[0].toLowerCase().indexOf(user.toLowerCase()) > -1){
alert("Email address cannot contain the username");
return false;
}
return true;
}
我想在这里扩大现有的答案。你说这是为了一项任务,但是这个要求在很多应用程序中都可以看到 - 这里的答案对于在生产中实现此功能的用户仍然有用。
定义你认为“相似”是第一件要做的事情。例如,大/小写。是bob
太类似BoB
?在我看来是这样。所以我们要做的第一件事就是将所有字符串转换为相同的大小写。在JavaScript中你有toLowerCase()
。您也可以决定某些符号不会更改字符串,因此会忽略它们。例如,bob
与b.ob
非常相似。对于这种情况,您可能需要删除这些“无意义”的符号。使用JavaScript,为此,您可以使用replace()
。
在实施条件之前必须先确定法律。
最后要说明的是,您正在执行客户端验证。如果用户禁用JavaScript或更改页面上的代码,则可以轻松绕过在JavaScript中执行的任何验证。这种验证应该在服务器上完成总是。您可以将客户端验证保留在那里,以改善用户体验,并且不会向服务器发送显然无效的请求。
首先,您必须自己定义“太相似”的含义。一旦你知道这只是一个实施这些条件的问题。为了得到一些具体的答案,你必须要更具体些。 – Lix
此情况仍允许使用类似用户名的电子邮件。 'bob1 @ email.com'将被允许。您也可以考虑这些情况。 – Lix
这部分工作是为了uni任务,他们只测试整个事情是否相似,而不是章节。虽然谢谢! – user1725794