2015-07-10 58 views
0

起初似乎是一個愚蠢的問題,但我努力尋找一種方法來正確地發現用戶在字段中輸入了'@'值。通過Javascript按鍵檢測'@'(arobase)?

這個問題主要是因爲鍵盤佈局,就像在Mac和Windows之間。

例如,在我目前的佈局,以顯示「@」,我不得不altgr + 0,但我相信,Mac的,它位於鍵盤左上方的第一個關鍵。

所以我的問題很簡單,當用戶輸入'@'時,如何觸發條件,與OS /鍵盤佈局/品牌無關?

我在Google上搜索了一些可以工作的庫/代碼片段,而我發現的僅有的幾個不是平臺獨立的,並且沒有與我一起工作。

+0

如何在'keypress'事件檢查? – MaxArt

+0

@MaxArt:我很確定OP已經指出了這一點。 – Cerbrus

+0

我試着用鍵控,不按鍵...這是孩子,是我錯過了答案! ;) –

回答

1
$('#theinput').on('keyup', function(event) { 
    var isArobase = /@/.test($(event.target).val()); 
}); 

那麼如果想爲電子郵件測試:

function validateEmail(email) { 
    var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i; 
    return re.test(email); 
} 
$('#theinput').on('keyup', function(event) { 
    var isArobase = validateEmail($(event.target).value()); 
}