博计报表中灵活的填报表校验

制作类似个人信息录入这样的填报表格时,报表中需要填写的单元格可能会很多,包括姓名、年龄、住址、电话和email,还有个人简介等等。为了保证信息准确无误的入库,需要加校验以保证数据类型和格式的正确。博计报表提供了灵活的校验方式来满足多种多样的校验需求,如通过设置单元格的填报数据类型、在填报属性的数据校验里写校验公式、自定义合法性校验函数等校验方法。本文将通过一个小例子介绍一下在博计报表中如何在填报属性的数据校验里写正则表达式实现校验功能。

首先:建立好一个填报表,数据源选bonzerDemo的中的订单表,数据字段选上订单ID、货主名称、货主地区、货主邮政编码和运货费,现在需要给D2单元格即邮政编码格式设置合法性校验,校验输入邮编格式是否正确,所谓正确就是邮编全为数字,不能有其他字符,而且长度需为6位,首位不为0。

操作如下图。

1.png

在弹出的”数据填报”对话框中选择”数据校验”标签页,添加校验表达式D2.toString().match(/^[1-9]\d{5}$/),如下图:

2.png

注意: 在添加自定义校验表达式时,如果选择”立即校验”为”是”,表示在页面填写数据时,当鼠标移开当前单元格时就立即进行合法性检查,否则在点击提交按钮时才进行合法性检查。

在发布后报表的页面中,当在邮政编码位置输入非数字的字符,或者输入的字符长度大于或小于6位时,都会弹出输入数据不合法的提示信息,如下图:

3.png

这样就实现了在博计报表中使用正则表达式来校验数据的格式是否合法的需求。

下面列举几种常见的正则表达式:

检查手机号是否合法: /^1(3\d|5[36789])\d{8}$/

说明:手机号共11位,第一位为1,第二位为3或者5,当第二位为5的时候,第三位只能是36789中的一个

检查中文名是否合法:/^[\u4e00-\u9fa5]+$/

说明:若不是中文或中文的前后有空格,都认为是不合法的

检查 html 标记是否匹配: /<(.*)>.*<\/\1>|<(.*) \/>/

说明:如若只出现<html> 而无对应的</html>,则检验结果是html 标记不匹配

检查URL格式是否合法: “[a-zA-z]+://[^\s]*”

说明:URL合法格式应该以字母连接:// 开头

检查IP格式是否合法: /(\d+)\.(\d+)\.(\d+)\.(\d+)/

说明:IP的格式是点分十进制格式,例如:192.168.0.66 就是正确IP

检查账号是否合法: /^[a-zA-Z][a-zA-Z0-9_]{4,15}$/

说明:账号字母开头,其他位可以有大小写字母、数字、下划线,允许5-16字节

检查QQ号是否合法: /^\s*[.0-9]{5,10}\s*$/

说明:QQ号码必须是数字,最长10位

检查邮编是否合法:/^[1-9]\d{5}$/

说明:邮编首位不为0,长度是6位的数字

检查身份证号是否合法: /(^\d{15}$)|(^\d{17}([0-9]|X)$)/

说明:身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X

注意:

1.一般来说,写在可扩展单元格中的校验,会随着单元格的扩展而被复制,写在不可扩展单元格,则不会被复制,即使用D2.toString().match()方法,只是对单元格D2本身的正确性进行校验,当D2为扩展单元格时,需要使用符号”${}”,即用${D2}.toString().match(),才能对所有扩展格都进行校验。

2.当被校验的数据类型是非字符串的时候,可使用.toString()方法先将其转换成字符串后再进行校验。

浏览次数:0 ; 发布日期:2010/03/30

热门文章

  • 申请试用授权 - 47,006 views
  • 使用入门教程简介 - 29,480 views
  • .NET报表产品概况 - 26,555 views
  • 联系我们 - 13,381 views
  • 技术支持 - 9,716 views
  • 高效报表设计 - 8,641 views
  • Web报表工具的新起点 - 7,289 views
  • 复杂报表的制作 - 6,752 views
  • Web报表软件的采购成本 - 6,236 views
  • Web报表软件的集成方案 - 4,882 views