0

私はコードを持っています。以下に小さな例を示します。ユーザー名を取得してから、他のコンテキストをチェックします。次に、それらを相互にチェックします。スクリプト全体がこの 1 つの点を除いて機能し、余裕がありません。

  var getName= $('#element').text(),
      uName =getName.replace("Welcome ",""),
      loggedIn = newMember.replace(membersList,"");
         if(loggedIn !== uName) 
         {
          //run other codes
         }

私がこれを行うとき、それはまだコードを実行しています。私は条件を間違って書いていますか?

4

1 に答える 1

2

あなたの質問のタイトルから、あなたの懸念は、文字列の比較が、loggedIn !== uNameどちらか一方の先頭および/または末尾のスペースによって影響を受けていることだと思います。

を使用する必要があり、使用するtrim()前にプロトタイプの存在を検証するのが賢明です (説明については、この回答を参照してください)。

コードは次のようになります。

if(!String.prototype.trim) {  
  String.prototype.trim = function () {  
    return this.replace(/^\s+|\s+$/g,'');  
  };  
}

var getName= $('#element').text(),
    uName =getName.replace("Welcome ","").trim(),
    loggedIn = newMember.replace(membersList,"").trim();
      if(loggedIn !== uName) 
       {
        //run other codes
       }
于 2013-05-24T03:39:09.543 に答える