请问当字段中同时有汉字和数字时,怎样控制数字后面不能输入汉字,但前面可以?

Zi_Yuan 2007-12-03 11:37:39
当手工输入时,难免回有输入不达标准的情况,就会影响到整个程序的运行.
请问当字段中同时有汉字和数字时,怎样控制数字后面不能输入汉字,但前面可以?
比如:某字段值是'汉字100.001汉字',怎样控制100.001的后面不出现汉字?
谢谢!
...全文
134 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
kk19840210 2007-12-03
  • 打赏
  • 举报
回复
最好在前台程序做控制
chuifengde 2007-12-03
  • 打赏
  • 举报
回复
--1.用程序控制比较好
--2.或创建约束
create table test(a varchar(20) check(patindex('%[0-9]%',a)=0 or patindex('%[0-9][啊-咗]%',a)=0))
Zi_Yuan 2007-12-03
  • 打赏
  • 举报
回复
谢谢各位!
Zi_Yuan 2007-12-03
  • 打赏
  • 举报
回复
请问这个正则表达式对吗?
[\u4E00-\u9FA5]*[0-9]+[[\.]*[0-9]+]*
我只匹配类似这样的字符串:'汉字100.001'
中国风 2007-12-03
  • 打赏
  • 举报
回复
以上为
满足为1,不满足0
中国风 2007-12-03
  • 打赏
  • 举报
回复
create function T_check(@s nvarchar(100))
returns bit
as
begin
declare @a int,@b int,@bit bit
select @a=patindex('%[0-9]%',@s),@b=0
while patindex('%[吖-座]%',@s)>0
select @b=@b+patindex('%[吖-座]%',@s),@s=stuff(@s,1,patindex('%[吖-座]%',@s),'')--改一下函数

return(case when @a>@b then 1 else 0 end)
end
go

declare @s nvarchar(100)

set @s='asdfa中国111中国'

select dbo.T_check(@s)
go
中国风 2007-12-03
  • 打赏
  • 举报
回复
create function T_check(@s nvarchar(100))
returns bit
as
begin
declare @a int,@b int,@bit bit
select @a=patindex('%[0-9]%',@s),@b=0
while patindex('%[吖-座]%',@s)>0
select @b=patindex('%[吖-座]%',@s),@s=stuff(@s,1,patindex('%[吖-座]%',@s),'')

return(case when @a>@b then 1 else 0 end)
end
go

declare @s nvarchar(100)

set @s='asdfa中国'

select dbo.T_check(@s)
go

declare @s nvarchar(100)

set @s='111asdfa'

select dbo.T_check(@s)
areswang 2007-12-03
  • 打赏
  • 举报
回复
记下
中国风 2007-12-03
  • 打赏
  • 举报
回复
自己写一个函数来检查
本指南详细阐述如何利用STM32微控制器作为系统管理总线主设备,与MLX90614非接触式红外测温模块建立数据通信。STM32系列芯片内置多种外设接口,其系统管理总线作为一种低速率、节能型双线制串行协议,适用于设备监控与传感器信息采集等场景。 MLX90614模块通过红外技术检测目标物体及周边环境温度,其兼容I²C与系统管理总线标准,可广泛应用于智能设备、医疗监护等领域。借助总线通信,能够从该传感器获取高精度的温度数值。 实施连接需按以下环节操作: **一、硬件配置** - 选用支持系统管理总线或I²C接口的STM32评估板(如STM32F103C8T6型号)。 - 将传感器的串行数据线与串行钟线分别接入微控制器对应的通信引脚。 - 安排外部供电线路并设置保护电路,保障传感器稳定运行。 **二、软件开发环境搭建** - 使用STM32CubeMX工具创建工程,选定对应处理器型号与开发板,在配置界面激活系统管理总线接口,设定钟频率并分配引脚功能。 - 基于HAL库编写底层驱动:调用库函数初始化总线,配置序参数包括传输速率、钟信号保持间等。 **三、传感器通信规约解析** - 查阅MLX90614技术文档,掌握其设备地址(默认7位地址为0x5A)、指令编码及数据帧结构。通过访问不同存储单元可读取温度信息。 - 依据系统管理总线规范设计读写流程,实现命令发送、数据接收及应答信号处理的相关函数。 **四、温度信息获取流程** - 向传感器特定存储地址(例如0x2D或0x31)发送读取指令。 - 接收返回的16位二进制温度数据,该数据包含整数与小数部分,需按规范转换为摄氏温度值。 **五、异常状态管理** - 在通信函数加入超检测、应答失败判断等异常处理机制。 - 在主程序循环实施定期状态监控,确保系统长期可靠工作。 **六、程序实现参考** - 典型驱动文件包含总线通信功能模块与温度解析函数,可调用HAL库的主设备发送与接收函数完成数据传输。 完成上述步骤后,即可建立STM32与MLX90614间的稳定通信链路。实际部署还需综合考虑电源优化、断响应、数据存储与显示等扩展功能。建议编程采用模块化设计并添加详尽注释,以提升代码可维护性与可扩展性。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!

34,875

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧