• 必备表格软件-FineReport正则表达式简介


    1. 概述

     1.1 应用场景

    有时候我们需要用到正则表达式进行信息的校验。

    例如有一张使用了「文本控件」的查询报表,输入「销售员」姓名后可查询销售员的销售情况,此时希望设置销售员文本控件的填入信息校验内容为:若填入内容不是中文或中文的前后有空格,都认为是不合法的,如下图所示:

    1.2 书写规范

    正则表达式的书写规则如下:

    符号

    说明

    l ^

    开始

    l $

    结束

    l \d

    任意一个数字,0~9 中的任意一个

    l \w

    任意一个字母或数字或下划线,也就是 A-Z,a-z,0-9 中任意一个

    l \s 

    包括空格、制表符、换页符等空白字符的其中任意一个

    l .

    小数点可以匹配除了换行符(\n)以外的任意一个字符

    {n}

    表示重复 n 次,比如"\w{2}"相当于 "\w\w";"a{5}"相当于 "aaaaa"

    {m,n}

    表示至少重复 m 次,最多重复n次,比如"ba{1,3}"可以匹配 "ba"或"baa"或"baaa"

    {m,}

    表示至少重复 m 次,比如"\w\d{2,}"可以匹配 "a12","_456","M12344"

    ?

    匹配表达式0次或者 1 次,相当于 {0,1},比如"a[cd]?"可以匹配 "a","ac","ad"

    +

    表达式至少出现 1 次,相当于 {1,},比如"a+b"可以匹配 "ab","aab","aaab"

    *

    表达式不出现或出现任意次,相当于 {0,},比如"\^*b"可以匹配 "b","^^^b"

    1.3 注意事项

    如果是在 JS 中使用正则表达式,则需要在正则表达式前后加“/”,如检查手机号码是否合法:/^1(3\d|5[36789])\d{8}$/。

    2. 操作步骤

     2.1 报表设计

    创建普通报表,新建模板数据集,使用内置 DEMO 「销量」数据表,输入 SQL 语句:SELECT * FROM 销量 where 销售员='${销售员}',如下图所示:

    点击参数面板,将「销售员」参数添加并设置为文本控件,然后添加查询按钮,或者直接点击「全部添加」,如下图所示:

    将字段拖入单元格中,设计报表如下图所示:

    2.2 设置控件填写规则

    在参数面板选中文本控件,在「属性」栏设置填写规则为「自定义」,输入正则表达式:^[\u4e00-\u9fa5]+$,并输入错误提示「输入不合法」,如下图所示:

    公式说明:

    公式

    说明

    ^

    匹配输入字符串的开始位置

    [] 

    定义匹配的字符范围

    \u4e00-\u9fa5

    “\u4e00”和“\u9fa5”是unicode编码,并且正好是中文编码的开始和结束的两个值,所以这个正则表达式可以用来判断字符串中是否包含中文。

    +

    匹配前面的子表达式一次或多次(大于等于1次)

    $

    匹配输入字符串的结束位置

    2.3 效果查看

    保存模板,点击分页预览,详情参见本文 1.1 节。

    3. 正则表达式示例

    一些常用正则表达式举例:

    表达式目的

    表达式

    说明

    检查指定手机号是否合法

    注:仅示例,校验规则可根据你的实际情况书写。

    ^1(3\d|5[36789])\d{8}$

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

    检查中文名是否合法

    ^[\u4e00-\u9fa5]+$

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

    检查 HTML 标记是否匹配

    <(.*)>.*<\/\1>|<(.*) \/>

    如若只出现而无对应的,则检验结果是 HTML 标记不匹配

     检查 URL 格式是否合法

    [a-zA-z]+://[^\s]*

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

    检查 IP 格式是否合法

    (\d+)\.(\d+)\.(\d+)\.(\d+)

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

    检查账号是否合法

    ^[a-zA-Z][a-zA-Z0-9_]{4,15}$

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

    检查 QQ 号是否合法

    ^\s*[0-9]{4,9}\s*$

    QQ 号码必须是数字,最短 5 位,最长 10 位

    检查邮政编码是否合法

    ^[1-9]\d{5}$

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

    检查身份证号是否合法

    (^\d{14}$)|(^\d{17}([0-9]|X)$)

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

     检查时间是否合规

    ^(0\d{1}|1\d{1}|2[0-3]):([0-5]\d{1})$

    时间是 24 小时制,:号前是 01 到 23

    检查密码是否合规

    ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$

    密码必须包含大小写字母和数字的组合,不能使用特殊字符,长度在 8-10之间

    检查邮箱是否合规

    因为邮箱格式类型比较多,比较常用的是^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$

    只允许英文字母、数字、下划线、英文句号、以及中划线组成

    如果名称中有汉字、字母、数字,域名只允许英文域名,正则表达式为^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$

    检查输入内容是否有空格

    ^[^\s]*$

    输入的内容不允许包含空格时使用,正则表达式为^[^\s]*$

    检查用户密码是否合法

    ^[a-zA-Z]\w{5,17}$

    密码规则是以字母开头,长度在 6-18 之间,只能包含字母、数字和下划线。

    总结

    帆软FineReport,小到填报、查询、部署、集成、帆软表格制作,大到可视化数据大屏、dashboard驾驶舱,应有尽有,功能很强大。目前仍然有很多企业用的是Excel或者手工方式进行固定资产管理,经常出现报废了没有下账,维修中不知情,科室之间互相转借等问题,导致信息不准确,管理成本高。使用帆软FineReport,用条形码功能给每个资产都生成唯一的条形码。这样扫描条形码即可查询固定资产信息;还可以进行借调、保修、报废等操作,数据库里资产状态信息实时更新;还可以对已盘点的资产进行标记,进而把未盘点到的资产罗列出来。

  • 相关阅读:
    Win10 + VS017 编译SQLite3.12.2源码
    【Vue3】图片未加载成功前占位
    webpack原理篇(六十一):更复杂的 loader 的开发场
    如何从事自己热爱的事情并能赚到体面的薪资
    欢迎 Llama 3:Meta 的新一代开源大语言模型
    Stable Diffusion WebUI 使用 VAE 增加滤镜效果
    高性能存储 SIG 月度动态:erofs 新增支持多个重要特性,持续构建容器场景竞争力
    Springboot老来福平台682f5计算机毕业设计-课程设计-期末作业-毕设程序代做
    Vue非父子组件之间的通信
    20天深度复习JavaSE的详细笔记(十七)——多线程
  • 原文地址:https://blog.csdn.net/sjfxnxsr_/article/details/128089005