All Posts in 2014.6


jQuery.maskedinput如何验证日期(处理2月份,支持闰年)

我司的系统里最近发现了一个神奇的现象: 呵呵呵呵呵。。。。。 我们用的是jQuery.maskedinput这个插件,插件本身只是为了约束格式,并不做validation。所以我们必须自己搞定。思路很简单,插件提供了completed事件,所以只要在用户输入完成后验证字符串是否为合法日期。重点是一个正则表达式。 用大微软的bing搜索后发现了一个支持mm/dd/yyyy并可以验证闰年的正则: ^((0[13578]|1[02])[\/.]31[\/.](18|19|20)[0-9]{2})|((01|0[3-9]|1[1-2])[\/.](29|30)[\/.](18|19|20)[0-9]{2})|((0[1-9]|1[0-2])[\/.](0[1-9]|1[0-9]|2[0-8])[\/.](18|19|20)[0-9]{2})|((02)[\/.]29[\/.](((18 …


图解:使用Azure PowerShell创建和删除虚拟机

昨天教了大家如何使用Windows Azure PowerShell启动和关闭虚拟机,但光会用PS开关机还是不够的。如果你还在用网页版Portal创建和删除虚拟机,而只用PS去开关机,逼格明显就不完整了。所以今天再教大家如何用Windows Azure PowerShell创建和删除虚拟机,完成整个装逼过程。 首先,使用Windows Azure PowerShell登录Azure账户的步骤不再重复了,上一篇文章里有。假定你已经登录了。 如果你想查看虚拟机列表命令是: Get-AzureVM 1. 要创建虚拟机需要获得一些前置信息。第一个是你的订阅名称。运行这条命令获得: Get-AzureSubscription 在我的例子中,结果是Windows Azure MSDN - Visual Studio Ultimate。这是一个一年价值12w的订阅,大家不要在意这些细 …


图解:使用Windows Azure PowerShell启动和关闭虚拟机

我们在使用Azure的时候,如果只会用网页版portal操作是没有逼格的。如果你不在命令行里啪啪啪的敲点东西,就会被Linux狗、Java狗、开源狗鄙视,他们会说用微软产品的人只会用图形界面,微软的程序员只会拖控件。为了挽回我们的逼格,大微软提供了Windows Azure PowerShell,能够让我们以命令行方式操作Azure。今天就教大家如何用Windows Azure PowerShell启动和关闭你的虚拟机。 如果你没安装Windows Azure PowerShell,可以通过大微软的Web Platform Installer安装,本文不再啰嗦怎么安装,反正WPI都是一键搞定的。 启动Windows Azure PowerShell后,第一件事就是要登录你的Azure账户。键入以下命令后会弹出登录界面: Add-AzureAccount 登录完成后, …


如何彻底删除TFS上已删除的文件

我们在TFS上删除文件后,在Souce Control里虽然看不到,但其实还在。只要在工具栏上选中“show deleted files”按钮就能看见这样的带红色X的已删除文件: 但是这些文件在GUI里是没办法再删除的。所以要动用命令行工具装逼。 在VS程序文件夹下找到Developer Command Prompt for VS2013。Win8可以在开始屏幕,所有应用里找到“Visual Studio Tools”文件夹。这个CMD不要求以管理员身份运行。 打开之后就可以用这个命令彻底删除文件了: tf destroy /s:你的TFS Collection地址 要删除的完整路径(服务器端) 有图有J8: 选择y,确认删除。


ASP.NET MVC ActionFilterAttribute的执行顺序

ASP.NET MVC里面我们要自定义ActionFilter的时候会发现有4个方法可以override:OnActionExecuting,OnActionExecuted,OnResultExecuting,OnResultExecuted。他们分别在什么时候执行一直是困扰人类的一个问题。我代表人类做了一个简单的实验: 首先自定义一个ActionFilter,每个方法执行的时候都在VS的OUTPUT窗口输出信息: public class TestActionFilter : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { Debug.WriteLine(" …