1

私はいくつかの値を含む配列を持っています。テキストボックスの値にその配列の要素のいずれかの値が含まれている場合は、アラート「存在する」と表示されます。それ以外の場合は「存在しません」と表示されます。次のコードを試しました。

$('[id$=txt_Email]').live('blur', function (e) {
    var email = $('[id$=txt_Email]').val();
    var array = ['gmail.com', 'yahoo.com'];
    if (array.indexOf(email) < 0) { // doesn't exist
        // do something
        alert('doesnot exists');
    }
    else { // does exist
        // do something else
        alert('exists');
    }

});

しかし、これは値全体を配列の要素と比較しています。文字列を使用したC#で可能なようにcontains関数を使用したいのですが。助けてください。ユーザータイプ「test@gmail.com」の場合、配列に存在することが表示されます。ユーザーが「test@test.com」と入力すると、アラートは存在しません。

4

4 に答える 4

3

私はあなたが欲しいと思います

$.each(array, function () {
   found = this.indexOf(email);
});
于 2012-11-16T07:34:30.063 に答える
2

正確ではない文字列に一致するものを見つけるには、次のようなことを行う必要があります

ライブデモ

arr = ['gmail.com', 'yahoo.com'];

alert(FindMatch(arr, 'gmail.co'));

function FindMatch(array, strToFind)
{

    for(i=0; i < array.length; i++)
    {
        if(array[i].indexOf( strToFind) != -1)
           return true;        
    }
     return false;
}
​
于 2012-11-16T07:31:37.303 に答える
1
$(document).on('blur', '[id$=txt_Email]', function (e) {
    var email = this.value, array = ['gmail.com', 'yahoo.com'];

    if (email.indexOf('@')!=-1) {
        if ($.inArray(email.split('@')[1], array)!=-1) {
            alert('exists');
        }else{
            alert('does not exists');        
        }
    }
});​

フィドル

于 2012-11-16T07:37:58.117 に答える
0
b is the value, a is the array

It returns true or false



function(a,b){return!!~a.indexOf(b)}
于 2012-11-16T07:39:47.530 に答える