轉(zhuǎn)帖|使用教程|編輯:龔雪|2021-09-01 10:10:36.087|閱讀 362 次
概述:本文主要介紹如何在SpreadJS的數(shù)據(jù)驗(yàn)證中使用正則表達(dá)式進(jìn)行校驗(yàn),歡迎下載相關(guān)工具體驗(yàn)!
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
SpreadJS中支持跟Excel一樣的數(shù)據(jù)驗(yàn)證用來校驗(yàn)輸入數(shù)據(jù)的正確性。而正則表達(dá)式是在日常開發(fā)中經(jīng)常用的校驗(yàn)手段。Excel本身不支持?jǐn)?shù)據(jù)驗(yàn)證時(shí)設(shè)置一個(gè)正則表達(dá)式來進(jìn)行校驗(yàn)。但是SpreadJS具有高度靈活的優(yōu)點(diǎn),通過相應(yīng)的擴(kuò)展可以實(shí)現(xiàn)使用正則表達(dá)式來進(jìn)行數(shù)據(jù)驗(yàn)證。接下來我們將一步一步實(shí)現(xiàn)這樣的操作:在設(shè)置之前我們首先要在代碼中重寫條件格式的相關(guān)條件設(shè)置,代碼如下:
創(chuàng)建一個(gè)用于正則校驗(yàn)的條件格式原型,原型繼承GC.Spread.Sheets.ConditionalFormatting.Condition,之后重寫evaluate方法。
function MyCondition (reg){ this.reg = reg; GC.Spread.Sheets.ConditionalFormatting.Condition.apply(this, arguments); } MyCondition.prototype = new GC.Spread.Sheets.ConditionalFormatting.Condition(); MyCondition.prototype.evaluate = function (evaluator, baseRow, baseColumn, actualObj) { var reg = new RegExp(this.reg); if (reg.test(actualObj)) { return true; }else{ return false; } };
SpreadJS數(shù)據(jù)驗(yàn)證支持DefaultDataValidator這種默認(rèn)數(shù)據(jù)驗(yàn)證,創(chuàng)建時(shí)需要添加一個(gè)條件規(guī)則。這里的條件規(guī)則中我們就可以傳入驗(yàn)證的正則表達(dá)式。代碼如下所示:
首先,我們創(chuàng)建一個(gè)條件規(guī)則,并將正則表達(dá)式當(dāng)做參數(shù)傳入。
var nCondition = new MyCondition("^[0-9]*[1-9][0-9]*$");
示例中我們的正則驗(yàn)證的是可以包含0開頭但不能為0的一串?dāng)?shù)字。接下來創(chuàng)建一個(gè)DefaultDataValidator默認(rèn)數(shù)據(jù)驗(yàn)證,并將上一步生成的條件規(guī)則對象傳入。
var validator = new GC.Spread.Sheets.DataValidation.DefaultDataValidator(nCondition);
之后,設(shè)置數(shù)據(jù)驗(yàn)證的類型為GC.Spread.Sheets.DataValidation.CriteriaType.custom 即自定義類型。
validator.type(GC.Spread.Sheets.DataValidation.CriteriaType.custom);
這樣就完成了正則數(shù)據(jù)驗(yàn)證的創(chuàng)建。最后我們?nèi)匀煌ㄟ^設(shè)置數(shù)據(jù)驗(yàn)證的setDataValidator方法進(jìn)行數(shù)據(jù)驗(yàn)證的設(shè)置,效果如下:
當(dāng)我們在單元格中輸入000時(shí),驗(yàn)證出錯(cuò):
輸入010時(shí),驗(yàn)證成功:
純前端表格控件SpreadJS,兼容 450 種以上的 Excel 公式,具備“高性能、跨平臺、與 Excel 高度兼容”的產(chǎn)品特性,備受華為、蘇寧易購、天弘基金等行業(yè)龍頭企業(yè)的青睞,并被中國軟件行業(yè)協(xié)會(huì)認(rèn)定為“中國優(yōu)秀軟件產(chǎn)品”。SpreadJS 可為用戶提供類 Excel 的功能,滿足表格文檔協(xié)同編輯、 數(shù)據(jù)填報(bào)、 類 Excel 報(bào)表設(shè)計(jì)等業(yè)務(wù)場景需求,極大的降低企業(yè)研發(fā)成本和項(xiàng)目交付風(fēng)險(xiǎn)。
本文轉(zhuǎn)載自
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: