我正在使用jQuery驗證功能和插件位於此處。 http://docs.jquery.com/Plugins/ValidationjQuery表單驗證,只允許.EDU電子郵件地址
我要thrue的js文件,我發現電子郵件驗證塊,以確保它是一個有效的電子郵件,事情是,我只想允許.edu電子郵件。我不知道從哪裏開始。
我正在使用jQuery驗證功能和插件位於此處。 http://docs.jquery.com/Plugins/ValidationjQuery表單驗證,只允許.EDU電子郵件地址
我要thrue的js文件,我發現電子郵件驗證塊,以確保它是一個有效的電子郵件,事情是,我只想允許.edu電子郵件。我不知道從哪裏開始。
您不需要自定義擴展。您可以使用accept()
方法:http://docs.jquery.com/Plugins/Validation/Methods/accept#extension
// input field
<input type="text" id="eduEmail2" name="eduEmail2" value="[email protected]"/>
// validation rule
eduEmail2: {
required: true,
email: true,
accept: 'edu'
}
完整的示例:http://jsfiddle.net/M5TmU/2/(基於Brombomb的的jsfiddle)
UPDATE
xecute的評論之後 - 你可以使用自定義的正則表達式。在additional-methods.js
你有「pattern
」的方法(最後一個文件):
eduEmail3: {
required: true,
email: true,
pattern: /(\.edu\.\w\w)$/
}
完整的示例:http://jsfiddle.net/M5TmU/3/
當然,它並不完美,但仍 - 你不需要編寫自定義的方法:)
附加編輯:國家域名有兩個字母,所以\w\w\w?
太多了 - \w\w
應該這樣做。我將\w\w\w?
留在小提琴中
您可以擴展它並添加自己的規則。
jQuery.validator.addMethod("edu", function(value, element) {
// Make it work optionally OR
// Check the last 4 characters and ensure they match .edu
return (this.optional(element) || value.slice(-4) == ".edu");
}, "You must use a .edu email address");
$("#myform").validate({
rules: {
field: {
required: true,
email: true,
edu: true
}
}
});
這是一個jsfiddle顯示它如何一起工作以及如何錯誤級聯。只要按下按鈕。
您可能仍會收到來自非.edu電子郵件地址的垃圾郵件。
我會建議檢查電子郵件域服務器端。
這樣電子郵件必須是.edu或它不會郵件。
否則,如果我關閉我的瀏覽器中的JavaScript,我可以提交任何電子郵件地址,它會發送。
他只是想向人們展示不帶.edu擴展名的電子郵件是不被允許的。當然,如果你正在做JS過濾或者其他控制,那麼你必須再次控制這些東西。如果沒有服務器端控制,這是不可接受的。 – xecute 2012-01-12 15:19:28
本地化情況如何? 「edu.fr」,「edu.tr」,「edu.ru」,「edu.de」..?他們也是大學生。 – xecute 2012-01-12 15:21:11
你是對的。我已經用另一個例子更新了我的答案 – BartekR 2012-01-12 18:28:18
完全是我在找的東西。好樣的! – Joe 2012-02-02 22:57:41