MVVM架構~knockoutjs系列之正則(ze)表達式使規則(ze)更(geng)靈活
幾乎(hu)每種驗(yan)證(zheng)(zheng)(zheng)架構都會有正則(ze)表達式的(de)加(jia)盟(meng),一(yi)(yi)般(ban)地,一(yi)(yi)種驗(yan)證(zheng)(zheng)(zheng)架構首(shou)先會提供一(yi)(yi)些標準的(de),常(chang)用(yong)的(de)驗(yan)證(zheng)(zheng)(zheng)規則(ze),它們通常(chang)是數字(zi)驗(yan)證(zheng)(zheng)(zheng),電話驗(yan)證(zheng)(zheng)(zheng),email驗(yan)證(zheng)(zheng)(zheng),長度(du)驗(yan)證(zheng)(zheng)(zheng),范圍驗(yan)證(zheng)(zheng)(zheng),日期驗(yan)證(zheng)(zheng)(zheng)等,而如果使你的(de)驗(yan)證(zheng)(zheng)(zheng)更強大,那一(yi)(yi)定要加(jia)入(ru)正則(ze)表達式!一(yi)(yi)般(ban)叫它:Regx
下面我來說一下KnockoutJS里如何加入正則表達式
調用方法:
self.Property= ko.observable().extend({
required: true,
pattern: { params:regex正則, message: "提示信息" }
});
下面舉幾個例子
驗證(zheng)為整數,并(bing)且(qie)小數部分(fen)為2位(wei)
self.peoplePrice = ko.observable().extend({ required: true, pattern: { params: /^\d+(\.\d{2})?$/, message: "必須(xu)是數字(zi),并且為兩(liang)位小數!" } });
驗證(zheng)為整(zheng)數,并(bing)且(qie)小(xiao)數部分最多(duo)為2位
self.peoplePrice = ko.observable().extend({ required: true, pattern: { params: /^\d+[\.]?\d{0,2}$/g, message: "必(bi)須是數(shu)字(zi),并且最(zui)多兩位小數(shu)!" } });
事實(shi)上,根據(ju)上面的(de)代碼,我們還(huan)可(ke)(ke)以想出很(hen)多(duo)驗證方(fang)式,可(ke)(ke)以說,有了(le)正則表達式的(de)加盟,讓(rang)KnockoutJS的(de)驗證萬能了(le),呵(he)呵(he)!