0

入力した電子メールに対してユーザーの入力をチェックして、類似しすぎているかどうかを確認する必要があります。類似している場合は、エラーをスローする必要があります。例えば;

「ユーザー名がメール アドレスに似すぎてはいけません。たとえば、メール アドレスが charlie@hud.ac.uk の場合、ユーザー名を charlie にすることはできません。」

どうすればこれを行うことができますか?

編集: メールアドレスの最初のセクション、@ の前のセクションに対してユーザー名を確認したい

4

3 に答える 3

2
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
}
于 2012-10-07T11:17:04.467 に答える
0

ここでは、既存の回答を拡張したいと思います。これは課題のためだとおっしゃいましたが、この要件は多くのアプリケーションで見られます。ここでの回答は、本番環境でこの機能を実装するユーザーにとって引き続き役立ちます。

「似ている」と考えるものを定義することが、最初に行うことです。たとえば、大文字/小文字。bobにあまりにも似ていBoBますか?私の意見ではそうです。したがって、最初に行うことは、すべての文字列を同じケースに変換することです。JavaScript では、toLowerCase(). また、特定のシンボルが文字列を十分に変更しないため、それらを無視する必要があると判断する場合もあります。たとえば、bobは によく似ていb.obます。そのような場合、それらの「意味のない」記号を削除したい場合があります。JavaScript では、この目的のためにreplace().

条件を実装する前に、法律を定義する必要があります。

ここでの最後の注意点は、クライアント側の検証を実行していることです。ユーザーが JavaScript を無効にしたり、ページのコードを変更したりすると、JavaScript で行われる検証は簡単にバイパスされる可能性があります。この種の検証は、常にサーバー上で行う必要があります。クライアント側の検証をそこに残して、ユーザーエクスペリエンスを向上させ、明らかに無効なリクエストをサーバーに送信しないようにすることができます.

于 2012-10-07T11:41:31.810 に答える
0
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;

}
于 2012-10-07T11:21:58.963 に答える