天天看點

潤乾填報——單元格校驗&字元串比對如何在填報時校驗字元串中是否包含某個符号

@潤乾填報單元格校驗 —— 字元串比對

如何在填報時校驗字元串中是否包含某個符号

在使用行式填報時,所有次元和數值資訊都來源于多名填報者的手工資料,是以不可避免的會導緻髒資料傳入資料庫表。

例如:同一個名額名稱為“淨利潤(不含彙兌)”,有的人會寫成“淨利潤(不含彙兌)”

可以通過 【單元格校驗】來預警

添加單元格校驗

在潤乾報表用戶端中,打開填報表,滑鼠選中要校驗的單元格,點選左上角菜單欄【填報】-【單元格校驗】

潤乾填報——單元格校驗&字元串比對如何在填報時校驗字元串中是否包含某個符号

釋出運作後報錯顯示如下:

潤乾填報——單元格校驗&字元串比對如何在填報時校驗字元串中是否包含某個符号

校驗表達式寫法

我們要做的是查找B2單元格的資料中是否包含中文括号,比對方法如下:

參考部落格草木物語:js 判斷字元串中是否包含某個字元串

方法一:B2.toString().search("(")=-1 and B2.toString().search(")")=-1

search() 方法用于檢索字元串中指定的子字元串,或檢索與正規表達式相比對的子字元串。如果沒有找到任何比對的子串,則傳回 -1

==正常情況下,我們希望在字元串裡找不到中文括号,是以正确的資料是B2.toString().search("(|)")=-1。當資料不符合該表達式時,觸發出錯提示

方法二:B2.toString(). indexOf("(")=-1 and B2.toString(). indexOf(")")=-1

indexOf() 方法可傳回某個指定的字元串值在字元串中首次出現的位置。如果要檢索的字元串值沒有出現,則該方法傳回 -1

方法三:B2.toString(). match(RegExp(/[\(,\)]/))==null

match() 方法可在字元串内檢索指定的值,或找到一個或多個正規表達式的比對。傳回包含第一個比對項資訊的數組;或者在沒有比對項的情況下傳回 null

方法四:RegExp(/[\(,\)]/).test(B2)=false

test() 方法用于檢索字元串中指定的值。傳回 true 或 false

方法五:RegExp(/[\(,\)]/).exec(B2)=null

exec() 方法用于檢索字元串中的正規表達式的比對。傳回一個數組,其中存放比對的結果。如果未找到比對,則傳回值為 null

================================================================

[1]: 部落格草木物語 https://www.cnblogs.com/ooo0/p/7741651.html

[2]: 關于JS中match() 和 exec() 傳回值和屬性的測試 https://www.jb51.net/article/81273.htm