国产探花免费观看_亚洲丰满少妇自慰呻吟_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 提供他的個人意見跟代碼的指導。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南陵县| 平塘县| 连城县| 彭水| 重庆市| 巫溪县| 茶陵县| 会昌县| 桐柏县| 马关县| 沧源| 锡林郭勒盟| 夹江县| 西城区| 监利县| 松桃| 陆河县| 嫩江县| 沅江市| 龙江县| 伊宁市| 长汀县| 广汉市| 白沙| 宁河县| 行唐县| 芒康县| 赞皇县| 镇宁| 册亨县| 水城县| 四川省| 无为县| 阿拉善右旗| 张家港市| 略阳县| 额敏县| 杂多县| 棋牌| 根河市| 阜南县|