2015-04-01 64 views
0

目前,我正在使用下面的代碼,但它似乎不起作用。如果用戶未能在輸入字段中輸入「@」符號,我想拋出一個錯誤。請多多包涵。由於如何檢查輸入(電子郵件)字段是否包含使用jQuery的特殊字符

我下面的代碼是:

var emailaddressVal = $("input[name='emailAddress']").val().split('@').slice(1)[0].trim(); 

if(emailaddressVal .match(/@/) !== null) { 
    alert('An @ symbol was not entered'); 
} 
+1

您只需要輸入'$(「input [name ='emailAddress']」)。val(); '檢查正則表達式之前。 – Pointy 2015-04-01 16:36:00

+0

@Pointy你有一個例子嗎? – Jimmy 2015-04-01 16:52:05

+1

??只需在你發佈的第一行代碼中的'.val()'之後放下所有內容。 – Pointy 2015-04-01 16:53:05

回答

1

哪些錯誤與indexOf?它並不總是必須是那麼複雜:

<input type="text" id="test"> 
document.getElementById('test').onkeyup = function() { 
    if (this.value.indexOf('@')>-1) { 
     alert('error'); 
    }   
}  

或jQuery的

$("#test").on('keyup', function() { 
    if ($(this).val().indexOf('@')>-1) { 
     alert('error'); 
    }   
});  

演示 - >http://jsfiddle.net/t49xdx56/

4

看起來你正在做的比很多工作你需要。您的split()調用搜索錯誤的字符,因此您可以在那裏停下來查看該字符串是否已拆分。但是,這不是表達你意圖的非常明確的方式。

如果你正在尋找一個特定的角色,你不需要一個正則表達式。

爲什麼不

if ($("input[name='emailAddress']").val().indexOf('@') > -1) { 
    /* we found an '@' character; handle as you like */ 
} else { 
    /* NOT FOUND, handle as appropriate */ 
    alert("Missing a required '@' character"); 
} 

indexOf如果找到字符串返回一個非負值。請參閱https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf

+0

謝謝!當字段不包含@時,如何顯示錯誤? – Jimmy 2015-04-01 18:10:45

+1

如果未找到@符號,我添加了一個'else'子句。第一行代碼測試'indexOf'是否返回一個位置(0或正數,即emailAddress字段中'@'的位置)。如果找不到,'indexOf'返回-1,所以測試失敗,並且執行落入你處理錯誤的'else'塊。 – Val 2015-04-01 18:37:09