国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > WEB開發 > 正文

15.4.如何創建一個Validator去驗證通用商品代碼(UPC)

2024-04-27 13:52:20
字體:
來源:轉載
供稿:網友
15.4.1 問題
怎樣在一個窗體內驗證復數的UPC 碼呢?
15.4.2 解決辦法
首先創建一個validator, 然后用它來檢查UPC 碼的檢驗和是否存在及正確, 否則即返回一個錯誤。
15.4.3 討論
一般商業中使用的UPC 碼, 都是由12 個數字所組成的。它包含著一個隱藏的檢驗和, 這個數是由每個相隔3 位數之積及它們之和相加所得出的。通過以下代碼來解釋會比較容易去理解:
代碼如下:
+展開
-ActionScript
var sum:Number = 0;
for ( var i:Number=0; i < UPC.length; i += 2){
sum += Number(UPC.charAt(i)) * 3;
}
for ( i = 1; i < UPC.length-1; i += 2) {
sum += Number(UPC.charAt(i));
}
var checkSum:Number = ( 10 - (sum % 10) ) % 10;
//如果檢驗和不對, 就返回一個驗證錯誤
if ( Number(UPC.charAt(11)) != checkSum ) {
results.push(new ValidationResult(truenull"invalidUPC""Invalid UPC Number."));
return results;
}

以上的代碼都是用來確保UPC 碼的有效性。接下的代碼就更為直接:
代碼如下:
+展開
-ActionScript
package com.passalong.utils
{
import mx.validators.Validator;
import mx.validators.ValidationResult;
import mx.controls.Alert;
public class UPCValidator extends Validator
{
private var results:Array;
public function UPCValidator()
{
super();
}
override protected function doValidation(value:Object):Array
{
//把數值轉換成字符串, 以方便對個別數字進行分析
var UPC:String = String(value);
// strip off decimal point from beginning -- added to force recognition of leading zeros
UPC = UPC.substring(1);
var UPCnum:Number = Number(UPC);
// 把results這個數組清空
results = [];
//呼叫doValidation()這個基礎類
results = super.doValidation(value);
// Return if there are errors.
if (results.length > 0)
return results;
// 如果輸入數據不是數目字或不是一個數值, 返回一個驗證錯誤
if (isNaN(UPCnum) || !value )
{
results.push(new ValidationResult(truenull"NaN""UPC required."));
return results;
}
if ( UPC.length != 12 )
{
results.push(new ValidationResult(truenull"invalidUPCLength","Please enter a full 12-digit UPC."));
return results;
}
else
{
var sum:Number = 0;
for ( var i:Number=0; i < UPC.length; i += 2)
sum += Number(UPC.charAt(i)) * 3;
for ( i = 1; i < UPC.length-1; i += 2) {
sum += Number(UPC.charAt(i));
}
var checkSum:Number = ( 10 - (sum % 10) ) % 10;
//如果檢驗和不正確, 返回一個驗證錯誤
if ( Number(UPC.charAt(11)) != checkSum )
{
results.push(new ValidationResult(truenull"invalidUPC""Invalid UPC Number."));
return results;
}
return results;
}
}
}
}

特別鳴謝Mike Orth 提供他的個人意見跟代碼的指導。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 察隅县| 巫山县| 岱山县| 嘉峪关市| 白银市| 西青区| 饶河县| 阜新| 彭水| 瑞金市| 厦门市| 长葛市| 襄城县| 特克斯县| 玉屏| 肥东县| 青河县| 樟树市| 安新县| 龙门县| 道真| 深泽县| 安阳市| 青海省| 错那县| 永年县| 尚志市| 新田县| 老河口市| 万盛区| 清新县| 泸西县| 田东县| 北票市| 元阳县| 大同县| 博湖县| 基隆市| 天气| 平安县| 新蔡县|