天天看点

润乾填报——单元格校验&字符串匹配如何在填报时校验字符串中是否包含某个符号

@润乾填报单元格校验 —— 字符串匹配

如何在填报时校验字符串中是否包含某个符号

在使用行式填报时,所有维度和数值信息都来源于多名填报者的手工数据,因此不可避免的会导致脏数据传入数据库表。

例如:同一个指标名称为“净利润(不含汇兑)”,有的人会写成“净利润(不含汇兑)”

可以通过 【单元格校验】来预警

添加单元格校验

在润乾报表客户端中,打开填报表,鼠标选中要校验的单元格,点击左上角菜单栏【填报】-【单元格校验】

润乾填报——单元格校验&字符串匹配如何在填报时校验字符串中是否包含某个符号

发布运行后报错显示如下:

润乾填报——单元格校验&字符串匹配如何在填报时校验字符串中是否包含某个符号

校验表达式写法

我们要做的是查找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