我需要对日期字段进行用户验证,它应该采用yyyyMMdd格式,并且将来不应超过一年.我该怎么做呢?目前我只有一个粗糙的正则表达式,这是不够的.
function VerifyDate(source, args)
{
var regexp = /^([1-2]{1}[0-9]{1})\d{2}([0][1-9]|[1][0-2])([0][1-9]|[1-2][0-9]|[3][0-1])$/
var result = args.Value.match(regexp);
if(result) {
args.IsValid = true;
} else {
args.IsValid = false;
}
}
Run Code Online (Sandbox Code Playgroud) 我对Javascript有很好的理解,除了我找不到设置"this"变量的好方法.考虑:
var myFunction = function(){
alert(this.foo_variable);
}
var someObj = document.body; //using body as example object
someObj.foo_variable = "hi"; //set foo_variable so it alerts
var old_fn = someObj.fn; //store old value
someObj.fn = myFunction; //bind to someObj so "this" keyword works
someObj.fn();
someObj.fn = old_fn; //restore old value
Run Code Online (Sandbox Code Playgroud)
没有最后4行,有没有办法做到这一点?这很烦人......我试过绑定一个匿名函数,我觉得这个函数漂亮而聪明,但无济于事:
var myFunction = function(){
alert(this.foo_variable);
}
var someObj = document.body; //using body as example object
someObj.foo_variable = "hi"; //set foo_variable so it alerts
someObj.(function(){ fn(); })(); //fail.
Run Code Online (Sandbox Code Playgroud)
显然,将变量传递给myFunction是一个选项......但这不是这个问题的重点.
谢谢.
如何设置子报告的参数?我已成功连接到SubreportProcessing事件,我可以通过e.ReportPath找到正确的子报告,我可以通过e.DataSources.Add添加数据源.但我发现无法添加报告参数?
我发现人们建议将它们添加到主报告中,但我并不是真的想这样做,因为主报告根本不应该连接到子报告,除了它正在包装分报告.
我使用一个报告作为主模板,打印报告名称,页码等.子报告将成为报告本身.如果我只能找到一种方法来设置子报告的报告参数,我会很高兴...
澄清:创建/定义参数不是问题.问题是设置它们的值.我认为自然要做的就是在SubreportProcessing事件中做到这一点.SubreportProcessingEventArgs实际上有一个Parameters属性.但它是只读的!那你怎么用呢?我怎样才能设定价值?
我认为winrot的主要原因之一是启动(并且不关闭)的服务数量,每隔x秒就会回拨一次,以查看某个软件是否有新版本.
我个人而言,我禁用它们中的每一个因为它们对我来说似乎完全没用.大多数使用这些东西的软件包都可以选择在您自己启动程序时检查更新.这看起来对我来说更有效率.
我问自己,像Adobe和Apple这样的公司有什么原因可以创建这样的服务,让客户的计算机陷入困境,同时增加他们自己的更新服务器的负担,因为对我而言,这些服务的回报值都很小.他们.
我的客户请求这样的服务,但我没有看到任何理由.我想确保我没有错过任何一个拼图,所以我可以回过头来看看为什么这应该或不应该是一个理想的功能.
我们正在寻找任何经过验证的迁移路径,以便将Subversion存储库移动到Team Foundation Server.似乎已经停产的产品名为CS-Converter(ComponentSoftware主页),但找不到任何使用它的人.
CS-Converter是一个坚实的产品,还有其他我没有找到的资源,或者有没有人可以指导我们的个人经验?
更新:为了澄清,我们需要实际将现有存储库从Subversion移动到Team Foundation Server(从高处开始的订单),所以虽然SVNBridge很好,但它确实可以完成这项工作.我们需要一种经过验证的安全方式来迁移存储库
总是让我困惑的一件事是输入转义以及你是否受到保护免受SQL注入等攻击.
假设我有一个使用HTTP POST将数据发送到PHP文件的表单.我在输入字段中键入以下内容并提交表单:
"Hello", said Jimmy O'Toole.
Run Code Online (Sandbox Code Playgroud)
如果您打印/回显接收此POST数据的PHP页面上的输入,它将显示为:
\"Hello\", said Jimmy O\'Toole.
Run Code Online (Sandbox Code Playgroud)
这是令人困惑的地方.如果我将此输入字符串放入(我的)SQL并执行它,它将进入数据库正常(因为引号被转义),但是会停止SQL注入吗?
如果我接受输入字符串并调用类似的东西mysqli real_escape_string,它就像这样:
\\"Hello\\", said Jimmy O\\'Toole.
Run Code Online (Sandbox Code Playgroud)
因此,当它通过(My)SQL进入数据库时,最终会:
\"Hello\", said Jimmy O\'Toole.
Run Code Online (Sandbox Code Playgroud)
这显然有太多的斜线.
因此,如果输入通过HTTP POST转发,您是否必须再次转义它以使(My)SQL安全?或者我只是没有看到明显的东西?
在此先感谢您的帮助.
有很多地方可以找到设计异常类的指南.几乎在我看的每个地方,都有异常对象永远不应该做的事情列表,这会影响这些类的设计.
例如,Boost人员建议该类不包含任何std::string成员,因为它们的构造函数可能会抛出,这会导致运行时立即终止程序.
现在,在我看来,这是相当理论化的.如果std::string构造函数抛出,那么它是一个bug(我传入了一个空指针)或一个内存不足的情况(如果我错了,请纠正我).由于我在桌面上,我只是假装我有无限的内存,无论如何,内存耗尽对我的应用程序来说是致命的.
考虑到这一点,为什么我不应该std::string在我的异常类中嵌入对象?事实上,为什么我的异常类不能全功能,并且还要处理日志记录,堆栈跟踪等.我知道一个责任原则,在我看来,这是一个公平的权衡让异常类完成所有这些.当然,如果我的解析器需要报告语法错误,那么功能齐全的异常将比围绕静态分配的字符数组构建的异常更有帮助.
那么:精益C++异常类 - 它在现实世界中有多大的优势?有什么权衡取舍?是否有关于该主题的良好讨论?
对于SQL存储过程编程,代码重用和模块化是一个好主意吗?
如果是这样,将这些功能添加到SQL存储过程代码库的最佳方法是什么?
我通常为常见和重复的任务创建标量值函数.我发现它既简化了与现有程序类似的新程序的开发,又在错误跟踪和故障排除方面提供了很多帮助.
由于性能问题,我试图远离表值函数.
我的经验法则是,如果它是一个计算,并且它在几个地方使用,那么我创建一个标量值函数.
史蒂夫麦康奈尔的一个清单项目是你不应该使用循环索引(第16章,第25页,循环索引,PDF格式).
这是直觉上的,并且是我一直遵循的练习,除非我学会了如何在当天编程.
在最近的代码审查中,我发现这个尴尬的循环并立即将其标记为可疑.
for ( int i=0 ; i < this.MyControl.TabPages.Count ; i++ )
{
this.MyControl.TabPages.Remove ( this.MyControl.TabPages[i] );
i--;
}
Run Code Online (Sandbox Code Playgroud)
它几乎是有趣的,因为它设法通过将索引保持为零来工作,直到删除所有TabPages.
这个循环可以写成
while(MyControl.TabPages.Count > 0)
MyControl.TabPages.RemoveAt(0);
Run Code Online (Sandbox Code Playgroud)
而且由于控制实际上与循环几乎同时写入,它甚至可以写成
MyControl.TabPages.Clear();
Run Code Online (Sandbox Code Playgroud)
我一直以来受到质疑有关代码审查问题,并发现我的关节为什么它是不好的做法,是没有那么强,因为我会很喜欢.我说很难理解循环的流程,因此难以维护和调试,并且最终在代码的生命周期内更加昂贵.
是否有更好的阐述为什么这是不好的做法?
尝试创建一个小型监视器应用程序,使用win32 API在C中的系统托盘中显示当前Internet使用率百分比.
还希望根据相对于月份剩余天数使用的颜色来使用彩色背景或彩色文本.
编辑:澄清我希望系统托盘图标是动态的.随着百分比的变化,我更新了系统托盘图标.寻找仅使用普通旧win32(即没有MFC或WTL)的解决方案.
c# ×2
javascript ×2
asp.net ×1
c ×1
c++ ×1
date ×1
escaping ×1
exception ×1
for-loop ×1
magic-quotes ×1
migration ×1
mysql ×1
parameters ×1
php ×1
reporting ×1
scope ×1
sql ×1
sql-server ×1
subreport ×1
svn ×1
system-tray ×1
tfs ×1
this ×1
validation ×1
variables ×1
winapi ×1