日本电影一区二区_日本va欧美va精品发布_日本黄h兄妹h动漫一区二区三区_日本欧美黄色

自研低代碼開發(fā)平臺(tái),深度表單數(shù)據(jù)校驗(yàn)的表達(dá)式語(yǔ)法實(shí)現(xiàn)

開發(fā)一個(gè)開發(fā)軟件的軟件平臺(tái)。

本平臺(tái)為支持用戶作深度、復(fù)雜的業(yè)務(wù)應(yīng)用系統(tǒng)定制開發(fā)而設(shè)計(jì)。用戶數(shù)據(jù)表單定制是其中最基本常用的功能,實(shí)際需求中不僅要支持復(fù)雜結(jié)構(gòu)的頁(yè)面定制,而且需支持?jǐn)?shù)據(jù)輸入的復(fù)雜邏輯管控,必須考慮實(shí)際應(yīng)用中可能面臨的各種不可預(yù)知且復(fù)雜的表單數(shù)據(jù)校驗(yàn)需求。常見的業(yè)務(wù)場(chǎng)景要求:

1、單數(shù)據(jù)校驗(yàn)

最簡(jiǎn)單的方式,校驗(yàn)單數(shù)據(jù)的內(nèi)容合法性,例如數(shù)據(jù)最大長(zhǎng)度、最小長(zhǎng)度、數(shù)據(jù)類型等基本要求,以及郵箱地址、手機(jī)號(hào)碼等特定內(nèi)容格式的要求。

2、多數(shù)據(jù)邏輯關(guān)系校驗(yàn)

不只是對(duì)數(shù)據(jù)內(nèi)容格式本身進(jìn)行約束,而且需處理多個(gè)數(shù)據(jù)之間的關(guān)系,結(jié)合實(shí)際業(yè)務(wù)邏輯進(jìn)行數(shù)據(jù)合法性校驗(yàn),例如表單中存在單價(jià)、數(shù)量、總價(jià)的字段(假設(shè)不作自動(dòng)計(jì)算),必須確保用戶輸入的總價(jià)等于數(shù)量乘以數(shù)量。

3、接口數(shù)據(jù)交互邏輯

用戶的一個(gè)數(shù)據(jù)輸入的有效性可能需要與外部數(shù)據(jù)接口作交互驗(yàn)證,例如輸入的員工工號(hào)需調(diào)用服務(wù)器后端接口校驗(yàn)此工號(hào)的員工是否存在、有效。

為滿足各類有可能的復(fù)雜應(yīng)用需求場(chǎng)景,并易于便捷使用,特設(shè)計(jì)了一套數(shù)據(jù)校驗(yàn)機(jī)制,數(shù)據(jù)校驗(yàn)抽象為以下幾部分:

1、觸發(fā)時(shí)機(jī)

2、提示方式

3、校驗(yàn)類型

4、校驗(yàn)順序

5、校驗(yàn)邏輯

數(shù)據(jù)校驗(yàn)規(guī)則支持Json方式定義和字符串表達(dá)式定義,Json方式適用于面向編程開發(fā)的應(yīng)用,字符串表達(dá)式的方式適用于面向普通用戶基于配置化的設(shè)置,系統(tǒng)提供可視化的前端設(shè)置功能,使得無IT技術(shù)背景的普通用戶也能無師自通玩轉(zhuǎn),在此重點(diǎn)說明表達(dá)式語(yǔ)法。

表達(dá)式示例:

@change!after:len(>1)&len(<21)&min(n4)&max(n8)&reg((.jpg|.png)$)&(func({return true})|type(s))|type(n)

表達(dá)式組成要素:

1、觸發(fā)時(shí)機(jī),支持?jǐn)?shù)據(jù)變化時(shí)立即觸發(fā)、焦點(diǎn)變化時(shí)觸發(fā)、表單提交前觸發(fā),語(yǔ)法為:

@change

@blur

@submit 默認(rèn),未指定時(shí)在表單提交前觸發(fā)

所有指定了需作校驗(yàn)的數(shù)據(jù)至少在表單提交前須校驗(yàn)一次。

2、提示方式

當(dāng)數(shù)據(jù)校驗(yàn)失敗后,向用戶提示信息的方式,支持表單域中直接提示和以交互方式進(jìn)行提示,語(yǔ)法:

!info 默認(rèn),彈出提示消息停留幾秒后自動(dòng)消息

!confirm,彈出對(duì)話框消息,強(qiáng)制用戶閱讀手工關(guān)閉

!top,在表單域尾部插入提示消息文本

!bottom,在表單域底部插入提示消息文本

!after,在表單域頂部插入提示消息文本

3、校驗(yàn)類型

以函數(shù)形式語(yǔ)法表示數(shù)據(jù)內(nèi)容規(guī)則

len,長(zhǎng)度規(guī)則,參數(shù)為比較符加數(shù)字,如(>1)表示長(zhǎng)度大于1,例如設(shè)置必填:len(>0)

min,最小值規(guī)則,支持?jǐn)?shù)值、字符串、日期型的值比較,參數(shù)首字符為數(shù)據(jù)類型,s:字符串,n數(shù)字,d日期

max,最大值規(guī)則,同min

type,數(shù)據(jù)類型規(guī)則,參數(shù)為單字符,s:字符串,n數(shù)字,d日期,…

reg,正則表達(dá)式規(guī)則,用以實(shí)現(xiàn)任何內(nèi)容格式要求的校驗(yàn),例如手機(jī)號(hào)、郵箱等,常用類型可內(nèi)置預(yù)留也可由用戶在前端自行配置自動(dòng)生成

func,自定義校驗(yàn)規(guī)則函數(shù),支持多數(shù)據(jù)間的關(guān)系校驗(yàn)以及外部數(shù)據(jù)接口的校驗(yàn)

4、數(shù)據(jù)校驗(yàn)順序

支持多個(gè)規(guī)則間的“與”、“或”、“括號(hào)”邏輯運(yùn)算,括號(hào)優(yōu)先級(jí)最高,其次是與運(yùn)算,最后是或運(yùn)算,以同一級(jí)下各局部運(yùn)算規(guī)則按表達(dá)式書寫順序。

5、表達(dá)式語(yǔ)法解析

表達(dá)式語(yǔ)法采用非嚴(yán)格書寫方式,支持無限多的層級(jí)括號(hào)和多個(gè)邏輯運(yùn)算的任意關(guān)系組合嵌套,可以任意使用大小寫、空格、換行,系統(tǒng)自動(dòng)作標(biāo)準(zhǔn)格式轉(zhuǎn)換。

自研低代碼開發(fā)平臺(tái),深度表單數(shù)據(jù)校驗(yàn)的表達(dá)式語(yǔ)法實(shí)現(xiàn)

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號(hào)
公眾號(hào)
在線咨詢
分享本頁(yè)
返回頂部
微山县| 濉溪县| 合江县| 阿拉善右旗| 海南省| 宜兴市| 山东| 清丰县| 上蔡县| 教育| 新津县| 威远县| 双鸭山市| 德清县| 桓仁| 阜平县| 清镇市| 武胜县| 盘锦市| 罗城| 贵港市| 枣强县| 武宣县| 古丈县| 达孜县| 米脂县| 临颍县| 咸丰县| 康马县| 黄陵县| 都江堰市| 桃江县| 扎兰屯市| 鄂州市| 湖南省| 筠连县| 麻阳| 岳西县| 昌吉市| 栾城县| 安福县|