<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Triumphal]]></title><description><![CDATA[http://www.zhangkai.net]]></description><link>https://blog.youkuaiyun.com/Triumph</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Triumph]]></copyright><item><title><![CDATA[货币数字中文大写 C#]]></title><link>https://blog.youkuaiyun.com/Triumph/article/details/147898348</link><guid>https://blog.youkuaiyun.com/Triumph/article/details/147898348</guid><author>Triumph</author><pubDate>Mon, 12 May 2025 16:24:42 +0800</pubDate><description><![CDATA[【代码】货币数字中文大写 C#]]></description><category></category></item><item><title><![CDATA[随机生成 MAC 全局单播地址（C#，.Net 6+）]]></title><link>https://blog.youkuaiyun.com/Triumph/article/details/127611640</link><guid>https://blog.youkuaiyun.com/Triumph/article/details/127611640</guid><author>Triumph</author><pubDate>Mon, 31 Oct 2022 11:05:39 +0800</pubDate><description><![CDATA[随机生成 MAC 全局单播地址（C#，.Net 6+）]]></description><category></category></item><item><title><![CDATA[判断日期的正则表达式]]></title><link>https://blog.youkuaiyun.com/Triumph/article/details/90054237</link><guid>https://blog.youkuaiyun.com/Triumph/article/details/90054237</guid><author>Triumph</author><pubDate>Wed, 13 May 2020 12:59:58 +0800</pubDate><description><![CDATA[^(?:\d{4}(?:-|\/|年))?\d{1,2}(?:-|\/|月)\d{1,2}日?$

可以匹配以下的日期格式：

2019-01-02
2019-1-02
2019-01-2
2019-1-2
01-02
1-02
01-2
1-2
2019/01/02
2019/1/02
2019/01/2
2019/1/2
01/02
1/02
01/2
1/2
2019年01月02日
201...]]></description><category></category></item><item><title><![CDATA[纯 CSS 的固定表头和首列]]></title><link>https://blog.youkuaiyun.com/Triumph/article/details/80674062</link><guid>https://blog.youkuaiyun.com/Triumph/article/details/80674062</guid><author>Triumph</author><pubDate>Wed, 13 Jun 2018 09:27:12 +0800</pubDate><description><![CDATA[将以下代码保存为网页文件后用非 IE 浏览器打开。&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;

&amp;lt;head&amp;gt;
    &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
    &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&amp;gt]]></description><category></category></item><item><title><![CDATA[执行在 innerHTML 中包含的脚本]]></title><link>https://blog.youkuaiyun.com/Triumph/article/details/80134964</link><guid>https://blog.youkuaiyun.com/Triumph/article/details/80134964</guid><author>Triumph</author><pubDate>Sat, 28 Apr 2018 14:49:53 +0800</pubDate><description><![CDATA[        let runScript = html =&amp;gt; {
            let _con = document.createElement(&quot;div&quot;);
            _con.innerHTML = html;
            [..._con.querySelectorAll(&quot;script&quot;)].forEach(el =&amp;gt; {
      ...]]></description><category></category></item><item><title><![CDATA[XMLHttpRequest 的 readystatechange 事件和 load 事件的区别]]></title><link>https://blog.youkuaiyun.com/Triumph/article/details/80019070</link><guid>https://blog.youkuaiyun.com/Triumph/article/details/80019070</guid><author>Triumph</author><pubDate>Fri, 20 Apr 2018 15:21:49 +0800</pubDate><description><![CDATA[分别在 onreadystatechange 和 onload 里写入代码：xhr.onload = function () {
    console.log(`load:xhr.readyState == ${xhr.readyState} ,xhr.status=${xhr.status}`);
}
xhr.onreadystatechange = function () {
    con...]]></description><category></category></item><item><title><![CDATA[只显示页面图片的油猴脚本]]></title><link>https://blog.youkuaiyun.com/Triumph/article/details/79542298</link><guid>https://blog.youkuaiyun.com/Triumph/article/details/79542298</guid><author>Triumph</author><pubDate>Tue, 13 Mar 2018 16:34:58 +0800</pubDate><description><![CDATA[运行后在页面右上角显示一个按钮，点击后只显示页面中的图片，需要时运行。// ==UserScript==
// @name         只显示图片
// @version      0.1
// @author       ZhangKai
// @match        *://*/*
// ==/UserScript==

(function() {
    'use strict';
...]]></description><category></category></item><item><title><![CDATA[节拍器（HTML5版）]]></title><link>https://blog.youkuaiyun.com/Triumph/article/details/79268347</link><guid>https://blog.youkuaiyun.com/Triumph/article/details/79268347</guid><author>Triumph</author><pubDate>Tue, 06 Feb 2018 10:59:10 +0800</pubDate><description><![CDATA[跑步的步频是180，走路的步频是130，跑步或走路时听的音乐节拍也要与步频一致，像我这样的严重强迫症患者，多一拍少一拍都不行，因此要找到相应节奏的音乐很不容易。网上找了很多的节拍器，都是设定频率后开始打拍，问题是我不可能知道一首音乐的精确节拍，一点一点试的话太麻烦！所以还是自己动手吧！下面这个节拍器中有一个“连续点击测速”的按钮，可以听着音乐按节拍点击按钮，会测出节拍的具体频率，再通过加减精调，实...]]></description><category></category></item><item><title><![CDATA[CSS 仿 iOS 系统通知数字样式]]></title><link>https://blog.youkuaiyun.com/Triumph/article/details/7568980</link><guid>https://blog.youkuaiyun.com/Triumph/article/details/7568980</guid><author>Triumph</author><pubDate>Tue, 15 May 2012 15:43:01 +0800</pubDate><description><![CDATA[iOS 的图标上显示通知的数字：







下面代码就是用 CSS 模仿数字的样式：
/*********************************************************/
/** 仿 iOS 系统通知数字样式 **/
span.num{
	background-color: #f00;
	background-image: -webkit-l]]></description><category></category></item><item><title><![CDATA[又发现一个 IE8 的问题，在 JavaScript 中类属性名称与关键字重名时]]></title><link>https://blog.youkuaiyun.com/Triumph/article/details/7426001</link><guid>https://blog.youkuaiyun.com/Triumph/article/details/7426001</guid><author>Triumph</author><pubDate>Wed, 04 Apr 2012 17:26:02 +0800</pubDate><description><![CDATA[业务系统中出现一个前台 JavaScript 错误，但在本机开发测试时一切正常。多次测试后发现报错的浏览器是 IE8，而本机测试的是 Chrome 和 IE9 却能正常运行。

 

经跟踪调试后发现，错误是在一个自定义类的属性上，这个属性名是：switch，而 switch 又刚好是 JS 的关键字。看来是 IE8 判断错误导致。

 

写个代码测试一下：

   var]]></description><category></category></item><item><title><![CDATA[纯 CSS 的多级菜单]]></title><link>https://blog.youkuaiyun.com/Triumph/article/details/7309696</link><guid>https://blog.youkuaiyun.com/Triumph/article/details/7309696</guid><author>Triumph</author><pubDate>Thu, 01 Mar 2012 14:44:32 +0800</pubDate><description><![CDATA[无脚本，纯 CSS 实现，在非 IE 内核浏览器和 IE8+ 表现完美。









	
	纯 CSS 多级菜单
	
		.menu{}
		.menu ul,.menu li{margin:0; padding:0;list-style:none outside;}
		.menu>ul{overflow:auto; display:inline-block;}
		.men]]></description><category></category></item><item><title><![CDATA[幻灯片播放 HTC 组件]]></title><link>https://blog.youkuaiyun.com/Triumph/article/details/6666504</link><guid>https://blog.youkuaiyun.com/Triumph/article/details/6666504</guid><author>Triumph</author><pubDate>Sun, 07 Aug 2011 10:47:18 +0800</pubDate><description><![CDATA[第一个版本写的时候已是近10年前，原以为不会再用到这个功能，没想到...原版本用 VBS 写的，很冗长，现改为 JS，去除无用的功能，再做些优化。
岁月如流水呀...
<!--
*************************************************]]></description><category></category></item><item><title><![CDATA[jQuery 版的 CheckBox 复选框成组联动（性能改进版）]]></title><link>https://blog.youkuaiyun.com/Triumph/article/details/6666424</link><guid>https://blog.youkuaiyun.com/Triumph/article/details/6666424</guid><author>Triumph</author><pubDate>Sun, 07 Aug 2011 10:25:52 +0800</pubDate><description><![CDATA[上一个版本的缺点是当组和组成员较多时，性能较差，此版主要是将所有组和组成员缓存，以达到改善性能的目的。


/*

-------------------------
	复选框联动

	www.zhangkai.net
-------------------------]]></description><category></category></item><item><title><![CDATA[jQuery 插件：随窗口大小变化的自适应高度元素]]></title><link>https://blog.youkuaiyun.com/Triumph/article/details/6666409</link><guid>https://blog.youkuaiyun.com/Triumph/article/details/6666409</guid><author>Triumph</author><pubDate>Sun, 07 Aug 2011 10:00:53 +0800</pubDate><description><![CDATA[严格说，这个不算是插件，做回标题党。




/*
	将具有 autoheight 属性的 div 元素设置为自动高度
	
	用法：给需要的 div 元素添加 autoheight 属性，如： ... 
		  可以修改选择符，如写为 ".autoheight" 或是其]]></description><category></category></item><item><title><![CDATA[VirtualPathProvider 类最简单明了的原理及用法]]></title><link>https://blog.youkuaiyun.com/Triumph/article/details/6165674</link><guid>https://blog.youkuaiyun.com/Triumph/article/details/6165674</guid><author>Triumph</author><pubDate>Wed, 26 Jan 2011 23:38:00 +0800</pubDate><description><![CDATA[MSDN 上关于此类的说明是：
    提供了一组方法，使 Web 应用程序可以从虚拟文件系统中检索资源。

很绕，到底是什么意思？

打个比方：
请求网站的 a.aspx 文件，该文件存在，则显示，不存在，就会出现 404 错误信息。
那么能不能这样，虽然这个文件不存在于服务器的文件系统，但我可以从数据库或者其它地方获取代表该文件的内容，然后让它代替这个文件正常显示呢？

OK！VirtualPathProvider 类就是干这个事儿的！]]></description><category></category></item><item><title><![CDATA[一个简单的图片切换 jQuery 插件]]></title><link>https://blog.youkuaiyun.com/Triumph/article/details/6165595</link><guid>https://blog.youkuaiyun.com/Triumph/article/details/6165595</guid><author>Triumph</author><pubDate>Wed, 26 Jan 2011 22:49:00 +0800</pubDate><description><![CDATA[网上各种各样的图片切换插件多如牛毛，功能强大，效果出众。但在实际应用中可能不需要那么华丽的效果，因为华丽的效果背后还要附带图片、样式等资源。所以一个简单的纯粹进行切换的插件可能正符合要求。下面这个简单的插件原理很简单，将匹配的元素全部隐藏后挨个切换，不只用于图片，还可用于任意元素的切换。]]></description><category></category></item><item><title><![CDATA[DateTime.Now.Ticks 较高精度的时间刻度]]></title><link>https://blog.youkuaiyun.com/Triumph/article/details/6165578</link><guid>https://blog.youkuaiyun.com/Triumph/article/details/6165578</guid><author>Triumph</author><pubDate>Wed, 26 Jan 2011 22:42:00 +0800</pubDate><description><![CDATA[<br /><br />DataTime.Now.Ticks 的值表示自 0001 年 1 月 1 日午夜 12:00:00 以来所经历的以 100 纳秒为间隔的间隔数，可用于较精确的计时。<br /> <br /> <br /> <br />1秒=1000豪秒 1毫秒=1000微秒 1微秒=1000毫微秒（纳秒）<br /> <br /> <br /> <br />例如，需要在网页上显示该页面的运行时间，则只需在在页面加载时记录该值，在页面结束时再使用此值与先前的值相减，即得出页面的运行时间。如：<br ]]></description><category></category></item><item><title><![CDATA[对 Access 数据库中日期字段操作时 OleDbParameter 的问题及解决]]></title><link>https://blog.youkuaiyun.com/Triumph/article/details/6165573</link><guid>https://blog.youkuaiyun.com/Triumph/article/details/6165573</guid><author>Triumph</author><pubDate>Wed, 26 Jan 2011 22:40:00 +0800</pubDate><description><![CDATA[<br /><br />比如 SQL 语句：<br /> <br />Update [table] Set [CreateDate]=@CreateDate Where ...<br /> <br />其参数使用：New OleDbParameter("@CreateDate", Now)<br /> <br />当执行 SQL 语句向 Access 数据库中更新时会报错。而相同的语句使用 SQLParameter 向 SQLServer 中更新时没问题。<br /> <br />换一种方法，改为：<br ]]></description><category></category></item><item><title><![CDATA[用 Excel 打开文本文件时提示SYLK文件格式错误]]></title><link>https://blog.youkuaiyun.com/Triumph/article/details/6165567</link><guid>https://blog.youkuaiyun.com/Triumph/article/details/6165567</guid><author>Triumph</author><pubDate>Wed, 26 Jan 2011 22:38:00 +0800</pubDate><description><![CDATA[<br /><br />今天写了个小程序，用于将数据库内容导出到文本文件中，各字段之间用制表符分隔。<br /> <br />导出后用 Excel 打开时提示错误“SYLK： 文件格式无效”，确定后依然能正常打开，不知是何原因。<br /> <br />到 MSDN 查找后才知道，所谓 SYLK 文件也是文本文件，不过文件的前两个字符是大写的字母“ID”，正好我所导出的文件前两个字符正是大写的“ID”，所以会出现此提示。之所以还能正常打开，是 Excel 试图转换失败后又将其按普通文本文件再打开。<br /]]></description><category></category></item><item><title><![CDATA[jQuery 版的 CheckBox 复选框成组联动（JavaScript）]]></title><link>https://blog.youkuaiyun.com/Triumph/article/details/2910894</link><guid>https://blog.youkuaiyun.com/Triumph/article/details/2910894</guid><author>Triumph</author><pubDate>Wed, 10 Sep 2008 21:38:00 +0800</pubDate><description><![CDATA[普通 JavaScript 版请参见：http://blog.youkuaiyun.com/Triumph/archive/2007/11/29/1907813.aspx 先来看效果：复选框联动全选 111112222233333444445555566666  两个复选框联动全选 111112222233333444445555566666 全选  其它对象联动全选 11]]></description><category></category></item></channel></rss>