我必須檢查用戶輸入與他們的輸入電子郵件,以檢查他們是否太相似,如果他們是我需要拋出一個錯誤。例如;互相檢查輸入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