Flex驗證框架技術總結

2021-06-06 15:31:56 字數 2878 閱讀 7083

在開發flex的過程中,經常會出現要驗證文字框輸入字元是否有效的問題,比如說如果輸入的為空值,或者輸入為非數字值,或者沒有滿足正規表示式型別。如果使用flex validator驗證器的話,可以很好的在前端驗證一些欄位的業務邏輯。下面我將通過一些簡單的例子,說明flex驗證框架在專案中應用的場景。

1.沒有使用flex驗證器的場景

比如我們在判斷該字元非空,且為數字型別,我們可以寫入如下as**片斷:

//使用正規表示式判斷是否為數字,且非空值

public function isnumric(value:string):boolean

要呼叫它的時候寫入:

var data:string = this.agetxt.text;

if(!isnumric(data))

注意:這樣寫簡單的驗證判斷還有,如果還要判斷它的允許的最大值(maxvalue)和最小值(minvalue),我們還在as指令碼中寫入邏輯判斷,而且如果要判斷的文字框比較多的情況下,會還有非常多的邏輯判斷,所以接下來我們引入flex validator驗證器。

2.應用系統自帶的驗證器

系統自帶的驗證器使用比較簡單,只要在flex中的< fx:  declarations>< / fx:  declarations>中引入即可(以下我使用的開發環境為flex 4.0及以上版本),針對上面寫的邏輯判斷,我寫入如下驗證器:

如果我們還可以寫上maxvalue和minvalue.

如下所示:

這樣寫在標籤中引入即可,我們還可以寫入浮點型的,如下所示:

注意: 

這樣寫相比用as語句指令碼寫的優勢在於可以不斷擴充套件其邏輯判斷,而且還支援不斷的復用。等等 ,甚至不用寫一條判斷語句,不過一般情況下,我們還會寫入邏輯判斷.如下所示:

//批量表單字段校驗

var validateresult:array=validator.validateall([

v_prevpowera,

v_prevcounta

]);//若校驗通過

if (validateresult.length==0)

}

驗證通過了,即可進行你要做的操作,比如一些常見的curd(四大操作)都可以。

3.應用自定義驗證器的場景

有時候一些比較複雜的邏輯判斷,比如**號碼,固定**,郵箱,特別是固定**,因為我們中國的一些地方和美國的一些地方的**號碼的形式不盡相同,這種情況下就不可以使用flex系統自帶的驗證器了,下面我舉些例子,說明如何程式設計實現自定義驗證器。

officephonevalidator.as(actionscript 驗證器),如下所示:

package cn.ac.iscas.gz.sems.util

-\d$/ ;

protected static const tm:regexp = /^\d-\d$/;

private var _invalidformat:string = "固定**號格式錯誤";

//會被外面的覆蓋

//使用getter/setter方法

public function set invalidformat(value:string):void

public function get invalidformat():string

public function officephonevalidator()

/**

* 檢視手機號是否是 cm,cu,ct的

* */

private static function matchphone(value:string):boolean

/*** 驗證cn的手機號

* */

public static function validatephonenumbercn(validator:officephonevalidator,

value:object,

basefield:string):array

return results;

}/**

* 覆蓋validator的驗證方法

* */

override protected function dovalidation(value:object):array

}}

定義好了驗證器,下面我們要應用這個驗證器,在*.mxml做如下程式設計。

高亮顯示即為驗證器包所在位置.

然後跟系統自帶的驗證器使用一致,如下所示:

最後做邏輯判斷,驗證通過再下接下來的操作。

//批量表單字段校驗

var validateresult:array=validator.validateall([

v_phone,

v_email,

v_offcephone,

v_fullname

]);//若校驗通過

if (!validateresult.length==0)

4.總結

flex驗證框架適合做一些複雜的邏輯判斷,比如正規表示式判斷,還有它支援復用,可以在專案工程中多次地方使用,只要按上面那樣引入包即可,這樣就不必要再程式設計了,

「基於不重用使用的輪子」

,「我在車輪上拍死乙隻蒼蠅」。

(完,待續.........)

javaWeb常用框架技術總結

struts2 為什麼每次請求都要建立乙個action物件?strust2的action裡面很多情況下都是需要定義成員變數用來接收表單上的值,如果只是乙個物件的話,那麼很可能會出現多個執行緒共用乙個成員變數 出現執行緒安全問題,因此struts2每次請求都要建立乙個action物件.modeldri...

Flex框架介紹

flex框架介紹 2011年01月13日 相當於flex下的spring框架,提供了ioc功能。但時間比較晚,我覺得應該還沒有spring其他強大的功能 inversion of control dependency injection 反轉控制 依賴注入 event handing and med...

Flex框架介紹

flex框架介紹 2011年01月13日 相當於flex下的spring框架,提供了ioc功能。但時間比較晚,我覺得應該還沒有spring其他強大的功能 inversion of control dependency injection 反轉控制 依賴注入 event handing and med...