?
使用jQuery validator對(duì)form進(jìn)行驗(yàn)證非常方便且功能強(qiáng)大。jQuery validator 內(nèi)置了10多種驗(yàn)證方法,包括required, e-mail, url, min-lenght, max-length, min, max, range, date 等等……而且它還允許通過(guò) addMethod 函數(shù)添加新的驗(yàn)證方法。
?
項(xiàng)目中需要驗(yàn)證UPC碼,于是在jQuery Validator的基礎(chǔ)上開(kāi)發(fā)了一個(gè)驗(yàn)證UPC代碼的方法。
UPC碼的最后一位是校驗(yàn)碼,UPC校驗(yàn)碼的計(jì)算方法:
1. 將UPC碼奇數(shù)位的數(shù)字(不包括校驗(yàn)位)求和,然后乘以3;
2. 將UPC碼偶數(shù)位的數(shù)字(不包括校驗(yàn)位)求和,并加上第一步的計(jì)算結(jié)果;
3. 將第二步的計(jì)算結(jié)果除以10取余。如果余數(shù)不為0,則10減去余數(shù)得出校驗(yàn)碼;如果余數(shù)為0,則校驗(yàn)碼為0。
舉例:某種面巾紙盒子上的UPC條碼是036000241457。最后一位數(shù)字7是校驗(yàn)碼,如果其它數(shù)字都正確,那么校驗(yàn)碼肯定是7。計(jì)算步驟:
1. 奇數(shù)位數(shù)字求和,并乘以3: (0+6+0+2+1+5) X 3 = 42
2. 偶數(shù)位數(shù)字求和: 3+0+0+4+4 = 11
3. 第一步和第二步的結(jié)果相加: 42 + 11 = 53
4. 將第3步結(jié)果除以10取余,然后用10減去余數(shù):53 % 10 = 3, 10 – 3 = 7。得出最終的校驗(yàn)碼為7。?
維基百科中關(guān)于的UPC的條目: http://en.wikipedia.org/wiki/Universal_Product_Code
?
驗(yàn)證UPC代碼的JavaScript源碼:
// Author: Ken Yang // Blog: http://www.cnblogs.com/kenyang/ // 分發(fā)和使用該JavaScript腳本,請(qǐng)保留完整的作者信息。 function validateUpc(upc) { var leftDigits, checkDigit; leftDigits = upc.substr(0, upc.length - 1); var even = 0; var odd = 0; for (var i = 0; i < leftDigits.length; i++) { if (i % 2 == 0) { odd += parseInt(leftDigits.substr(i, 1)) * 3; } else { even += parseInt(leftDigits.substr(i, 1)); } } var reminder = (odd + even) % 10; checkDigit = reminder == 0 ? 0 : 10 - reminder; return checkDigit.toString() == upc.substr(upc.length - 1, 1); } jQuery.validator.addMethod("upc", validateUpc, "Please enter a valid UPC."); //將驗(yàn)證方法添加到j(luò)Query Validator
?
免費(fèi)下載連接:
http://files.cnblogs.com/kenyang/jQuery-validator-upc-1.0.js
?
使用起來(lái)也很簡(jiǎn)單,只需要在html頁(yè)面添加一個(gè)引用這個(gè)Plugin的鏈接(當(dāng)然還需要引用jQuery 核心庫(kù)和jQuery Validator),然后將需要驗(yàn)證的文本框添加一個(gè)upc 類。以下是一個(gè)html示例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript" src="http://jzaefferer.github.com/jquery-validation/jquery.validate.js"></script> <script src="http://files.cnblogs.com/kenyang/jQuery-validator-upc-1.0.js" type="text/javascript"></script> <script type="text/javascript"> $().ready(function () { $("#upcForm").validate(); }); </script> </head> <body> <h2>Using customized validation function to validate UPC code.</h2> <form id="upcForm" action=""> <label>UPC code</label> <input id="Text1" type="text" class="upc" /> </form> </body> </html>
?
當(dāng)在文本框Text1中輸入的UPC代碼不正確時(shí),文本框旁邊會(huì)顯示"Please enter a valid UPC. "。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
