2016-04-05 27 views
1

我想檢查一個電子郵件地址是否等於或3個不同數組中的任何字符串的子字符串。不幸的是,我寫的函數一直給出「無法識別的表達式」錯誤。jQuery檢查數組元素中字符串的電子郵件地址部分

var search = '[email protected]' 
jQuery.each(array1, array2, array3, jQuery(function(index, value) { 
    jQuery.each(value, jQuery(function(key, cell) { 
    if (jQuery(search).indexOf(cell) !== -1) 
     console.log('Found email in ' + index, cell) 
    })) 
})) 

這將引發以下錯誤:

Uncaught Error: Syntax error, unrecognized expression: info\\@example\\.com 

我缺少什麼?

+0

'信息@ example.com'是不是一個有效的DOM元素或表達 – ElGavilan

回答

5

第一個問題是每個需要將三個數組作爲單個數組包裝。第二個問題是在匿名函數之前使用jQuery。第三個問題是將search字符串包裝在jQuery對象中(這是觸發錯誤的那個)。

更新 - demo

jQuery.each([array1, array2, array3], (function(index, value) { 
    jQuery.each(value, (function(key, cell) { 
     if (search.indexOf(cell) !== -1) 
      console.log('Found email in '+index, cell) 
    })) 
})) 
+0

如果我從字符串中刪除jQuery的包裝,這我得到以下錯誤:jQuery的2.2。 1.min.js:2 Uncaught TypeError:b.call不是函數 – Vincent

+0

這就是爲什麼我添加了包裝。基於SO的另一個問題。 – Vincent

+0

你是否應用了所有的修補程序或者只是?看看工作演示,並將其與您的代碼進行比較,可能會錯過某些東西...... – MrCode

相關問題