关于“支票用途,汇款备注(附言)”界面录入要素的检验问题

studying_ 2010-03-12 03:25:11
业务需求书上要求:用途,备注(附言)栏输入的字符,系统要控制非法字符。包括但不限于符合GB2132编码规定;对X字符集的“℅、:、”等字符进行录入控制,
若录入非法字符时显示提示。我的理解是:支票用途,汇款备注(附言)输入栏,可以输入 ! % 《》 { } ( ); ^_^ 当然中文和英文是可以的啦。
我的实现代码如下 ,但不能完全实现这个功能,请各位牛人来协助解决。

private bool submitValidate()
{
//校验用途是否符合G字符集
if (!ClientValidationHelper.GB2312CharSetCheck(this.bos_ct_purpose.Text))
{
MessageInfoHelper.Instance.ShowMessage("用途输入格式非法!不允许X字符集的“%、:、”等字符");
return false;
}
if (!this.Validate(this.data))
{
return false;
}
if (this.bos_ct_purpose.GetValue().ToString() == "")
{
MessageInfoHelper.Instance.ShowErrorMessage("请输入业务要素!");
return false;
}
return true;
}

/// 检查数据是否符合GB2312标准
/// <param name="gb2312String"></param>

public static bool GB2312CharSetCheck(string gb2312String)
{
if (gb2312String == null)
return false;
gb2312String = gb2312String.Trim();
byte[] bytes = Encoding.GetEncoding("GB2312").GetBytes(gb2312String);
return GB2312CharSetCheck(bytes);
}

/// 检查数据是否符合GB2312标准
/// <param name="gb2312bytes"></param>
public static bool GB2312CharSetCheck(byte[] gb2312bytes)
{
if (null == gb2312bytes)
return false;

for (int i = 0; i < gb2312bytes.Length - 1; i++)
{
int current = Convert.ToInt32(gb2312bytes[i]);
int next = Convert.ToInt32(gb2312bytes[i + 1]);

if ((current >= 0x81) && (current <= 0xFE) && (next >= 0x40)
&& (current != 0x7F) && (current != 0x7B) && (current != 0x7D) && (next <= 0xFE))
{
continue;
}
else
return false;
}

return true;
}
...全文
356 10 打赏 收藏 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2010-03-26
  • 打赏
  • 举报
回复
正则表达式判断[^&\$]
studying_ 2010-03-26
  • 打赏
  • 举报
回复
继续顶起来。
studying_ 2010-03-19
  • 打赏
  • 举报
回复
还没有解决,为自己雄起!!
studying_ 2010-03-16
  • 打赏
  • 举报
回复
还没有解决,为自己雄起!!
段传涛 2010-03-13
  • 打赏
  • 举报
回复
cs 窗体,也只能选择 正则了。
用代码写太浪费资源了,而且不够严谨
studying_ 2010-03-13
  • 打赏
  • 举报
回复
又在submitValidate() 方法里,加了如下代码,还是不能实现。
//校验用途是否符合G字符集
if (!BOS.Common.Client._Pub.ClientValidationHelper.XCharsetStringCheck(this.bos_ct_purpose.Text))
{
if (this.bos_ct_purpose.Text.Equals("%") || this.bos_ct_purpose.Text.Equals(":") || this.bos_ct_purpose.Text.Equals("'") || this.bos_ct_purpose.Text.Equals("\"") || this.bos_ct_purpose.Text.Equals("!"))
{
MessageInfoHelper.Instance.ShowErrorMessage("录入非法字符:" + this.bos_ct_purpose.Text);
return false;
}
}


/// 检查数据是否符合X字符集标准
public static bool XCharsetStringCheck(string xcharString)
{
if (xcharString == null)
return false;
char[] xcharArr = xcharString.ToCharArray();
string xcharset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,-_()/=+?!&*;@# ";
foreach (char xchar in xcharArr)
{
if (!xcharset.Contains(xchar.ToString()))
return false;
}
return true;
}
studying_ 2010-03-12
  • 打赏
  • 举报
回复
更正一下:
汇款备注(附言)输入栏,可以输入 ! % 《》 { } ( ); ^_^
修改为:
不可以输入 ! % 《》 { } ( ); ^_^
xxoo2007 2010-03-12
  • 打赏
  • 举报
回复
还好我们还有正则这个强大的工具。
jinxuliang 2010-03-12
  • 打赏
  • 举报
回复
我的哥,人民的创造力是无限的
屏蔽这个东西难整啊,不停的同敌人作斗争
内容概要:本文围绕“数据驱动下光伏建筑群源荷不确定性解析及其储能多目标低碳经济调度研究”展开,提出了一种融合数据驱动方法与多目标优化算法的综合调度框架。研究首先基于历史数据对光伏发电出力与建筑负荷的不确定性进行建模,采用概率预测与场景生成技术刻画源荷波动特性,并通过典型场景提取降低输入复杂性。在此基础上,构建了以最小化系统运行成本、降低碳排放强度、提升可再生能源消纳率为目标的多目标优化模型,引入NSGA-II等先进智能优化算法求解Pareto最优前沿,实现经济性与低碳性的协同优化。通过Python编程完成模型搭建与仿真验证,结果表明该方法能有效应对源荷双重不确定性,在保障供电可靠性的前提下,实现了储能系统的优化配置与多目标调度决策的均衡协调; 适合人群:具备一定电力系统基础知识和Python编程能力,从事能源系统优化、智能调度、低碳技术等相关领域的研究生、科研人员及工程技术人员; 使用场景及目标:①应用于光伏建筑群、工业园区微电网等分布式能源系统的运行调度;②支撑含储能系统的多目标低碳经济调度决策,兼顾能源成本节约与碳排放控制双重目标;③为相关课题的研究与工程实践提供完整的算法实现参考与可复现的仿真案例支持; 阅读建议:建议读者结合文中提供的Python代码深入理解模型构建与求解流程,重点关注不确定性建模与多目标优化的耦合机制,可在实际数据基础上复现并改进算法,进一步探索不同权重策略下的调度方案优选方法。
代码下载链接: https://pan.quark.cn/s/cd4149768c91 互联网灰度部署系统解决方案的核心内容深度阐释: 一、灰度发布概念 灰度发布(亦称金丝雀发布)是在云计算及互联网服务领域中常见的一种发布策略,其中心理念是在全面推广新版本前,先向部分用户群体开放试用,以此来降低更新过程中的潜在风险。这种发布模式能够有效地兼顾用户体验与系统稳定性,它允许企业逐步将新的代码或功能部署至生产环境,并且仅对部分用户群体可见。此种做法有助于提前识别潜在问题,对用户体验造成的影响较小,并且能够获取更为真实的用户反馈信息。 二、系统现状和建设背景 在传统的发布模式中,每次更新都需要暂停服务才能发布新版本,这在用户体验和服务连续性方面存在明显不足。伴随互联网经济的繁荣发展,移动终端与日常生活的融合日益紧密,对互联网系统的支撑需求持续增长。特别是在电信行业,系统需要实现7*24小时不间断服务,以适应快速变化的市场需求和频繁更新的技术。因此,迫切需要一种新的发布方式,即灰度发布,用以提升产品发布的效率并改善用户体验。 三、灰度发布的优势与挑战 灰度发布相较于传统全量发布的优势包括: 1. 提供了新功能的试错空间,支持边发布边进行优化。 2. 维持服务的连续性,实现无缝升级。 3. 针对不同用户群体实施功能区分,提升用户体验和满意度。 4. 收集用户反馈,为后续版本的功能迭代和优化提供指导。 然而,灰度发布同样面临挑战,例如技术实现的复杂性、增加的运维压力等。 四、灰度发布的具体实施策略 1. 建设目标:保证湖北联通对外服务的互联网程序能够实现7*24小时不中断的灰度发布,实现无缝升级,同时全面提升用户体验。 2. 总体说明:需要通过灰度发布实现迭代开发和版本快速更...

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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