2012-03-06 118 views
10

嗨,我使用剃刀,並試圖使用正則表達式來驗證此電子郵件地址驗證功能用剃刀頁

function validateEmail(txtEmail){ 
    var a = document.getElementById(txtEmail).value; 
    var filter = /^[a-zA-Z0-9_.-][email protected][a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{0,4}$/; 
    if(filter.test(a)){ 
     return true; 
    } 
    else{ 
     return false; 
    } 
}​ 

但由於正則表達式中有一個@符號剃刀認爲這對正則表達式驗證電子郵件地址它的一部分語法,並給我一個錯誤。

反正有避免以確保剃刀忽略@符號在JavaScript

感謝。

+0

當有人關閉的JavaScript在您的網站會出現什麼情況? – 2012-03-06 19:06:04

+0

請參閱[剃刀視圖引擎中的Escape @ character](http://stackoverflow.com/questions/3626250/escape-character-in-razor-view-engine)。或者,您可以將Javascript放在單獨的文件中。 – oleksii 2012-03-06 19:09:07

回答

9

的Unicode可以這樣工作

string filter = "/^[a-zA-Z0-9_.-]+\\u0440[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{0,4}$/"; 

或者在剃刀@@是正常的@符號,它應該在你的JavaScript運行。

string filter = "/^[a-zA-Z0-9_.-][email protected]@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{0,4}$/"; 
0

嘗試,這可能是幫你

function validateEmail(email) { 
    var re = /^[_a-z0-9-A-Z-]+(\.[_a-z0-9-A-Z-]+)*@[a-z0-9-A-Z-]+(\.[a-z0-9-A-Z-]+)*(\.[a-z]{2,4})$/; 
    return re.test(email); 
} 
0

是很普通的檢查電子郵件的格式是否有效。要驗證電子郵件地址,我們需要使用正則表達式。在MVC剃鬚刀中,我們應該使用@@符號來執行驗證。 MVC razor:

VAR emailRegEx =/^(([^ <>()[] \;:\ S @@ \「] +([^ <>()[] \;:\小號@@ \ 「] +)*)|(\」。+ \「))@@(([0-9] {1,3} [0-9] {1,3} [O- 9] {1,3} [0-9] {1,3}])|(([A-ZA-Z-0-9] +)+ [A-ZA-Z] {2,}) )$ /;

正常的HTML:

對於正常我們應該用@符號來執行驗證

VAR emailRegEx =/^(([^ <>()[] \;:\ S @ \」 ] +(。[^ <>()[] \。,;:\ s @ \「] +)*)|(\」。+ \「))@(([[0-9] {1,3 } [0-9] {1,3} [0-9] {1,3} [0-9] {1,3}])|。。。(([A-ZA-Z-0-9] +)+ [A-ZA-Z] {2,}))$ /。

更多詳情,請訪問