0

必須フィールドが Java スクリプトを使用して検証されるユーザー登録ページがあります。すべてのブラウザーと IE-8,9 で正常に動作しますが、IE-7 では動作しません。

この問題は、パスワードの一致を検証するときに発生します。以下は、パスワードの一致の要件です。

  1. パスワードに少なくとも 1 つの数字が含まれている
  2. 繰り返さない文字
  3. 特殊文字が含まれています。
  4. パスワードには少なくとも 6 文字が含まれている必要があります。

以下は、パスワードの一致を検証するための私のコードです

function PasswordLenghtVal(pass)  // validating pass word length  
{
    if(/\d/.test(pass) && pass.length >= 6)
    {
        return true;
    }
    return false;
}

function FirstNonRepeatedChar(str)   //validating letters repeating or not  
{
    var i,j,repeated = 0;
    var len = str.length;

    for( i = 0; i < len-1; i++ )
    {
        repeated = 0;
        if(str[i] == str[i+1] ) // checking for existing or not 
        {

        repeated = 1;
        break;
        }
    }
        if( repeated == 0 )  
            return true;       
        else
        return false;
}

これは、パスワードの一致に使用したコードです。IE-7 のみの問題

4

2 に答える 2

0

わかった。まず、IE8 と IE7 で個々のコンポーネントをテストします。次に、その IE7 が機能するものを使用するようにします (どうやら問題はstr[]、私は JavaScript をあまり使用しないため、自分自身に言うことができません)。 IE7以下、それ以外の場合はあなたが持っているものになります。

私の考え(実際のコードではありません。私が何を意味するかを示すためです-私が言ったように、私はJSをあまり訴えません):

if(browser = "IE7") {
    //Code that works in IE7
} else {
    //Code that works in everything else
}
于 2012-11-30T17:58:27.000 に答える
0

[]getter 構文stringは IE7 では使用できません。

if(str[i] == str[i + 1]) // checking for existing or not 

で変更します

if (str.charAt(i) == str.charAt(i+1))

そして、正規表現で確認できます:

function FirstNonRepeatedChar(str) {
  return !/(.)\1/.test(str);
}
于 2012-11-30T17:52:31.907 に答える