相關網址:JAVAScript中使用正則表達式檢測日期格式
<script type="text/javascript">
//彭嘉宏的日期格式檢查(使用正則式)
function dateVerify(date){
var reg = /^(\d{4})([\/,-])(\d{1,2})\2(\d{1,2})$/;
var r = date.match(reg);
if(r==null) return false;
var d= new Date(r[1], r[3]-1,r[4]);
var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate();
date=r[1]+r[2]+((r[3]-1)+1)+r[2]+((r[4]-1)+1);
return newStr==date;
}
//ChanPing的日期格式檢查(使用Date()判斷)
function dateVerify2(date){
var d= new Date(date.split("-").join("/"));
var r= date.split("-").join("/").split("/");
return d.getDate()==r[2]; //判斷日
}
</script>
<input type="text" name="t1" style="background-color:#FFFFFF;" value="2009-02-30" />
<input type=button value="判斷日期dateVerify()" style="color=blue; font-size=10pt;width=130pt" onclick="alert(this.value+' is '+dateVerify(t1.value))" >
<input type=button value="判斷日期dateVerify2()" style="color=blue; font-size=10pt;width=130pt" onclick="alert(this.value+' is '+dateVerify2(t1.value))" >
2009年12月22日星期二
2009年11月18日星期三
ASP 在 IE瀏覽器中,Session遺失問題的處理
參考網址:http://support.microsoft.com/kb/323752
情況:
在IE瀏覽器內無法正常取得Session值,但在Firefox內卻可以正常的取出該Session值。
處理參考一 ( 在ASP程式內標頭加入下面語法 )
response.expires = 0
response.expiresabsolute = Now() - 1
response.addHeader "pragma","no-cache"
response.addHeader "cache-control","private"
response.addHeader "P3P","CP='CAO PSA OUR'"
response.CacheControl = "no-cache"
處理參考二 ( 在IIS內設定 [HTTP表頭] )
1. 按一下 [ 開始 ]、 按一下 [ 執行 ],然後再輸入 inetmgr ]。
2. 在 [左邊的瀏覽] 頁面按一下 [適當的檔案或目錄,在您想要新增標頭,以滑鼠右鍵按一下的檔案,然後按一下 [ 內容 您網站上]。
3. 按一下 [ HTTP 表頭 ] 索引標籤。
4. 在 [ 自訂 HTTP 表頭 ] 群組方塊中,按一下 [ 新增 ]。
5. 輸入 自訂標頭名稱(C):, P3P ,然後輸入 自訂標頭值(U):, CP="CAO PSA OUR"。
下列為參考網址內截出的內容:(為避免網址遺失的問題)
徵狀
如果您實作一個 FRAMESET 其圖文框指向您的夥伴或內部網路上網路上的其他網站,但您使用不同的最上層網域名稱您可能會發現在 Internet Explore...
loadTOCNode(1, 'symptoms');
如果您實作一個 FRAMESET 其圖文框指向您的夥伴或內部網路上網路上的其他網站,但您使用不同的最上層網域名稱您可能會發現在 Internet Explorer 6 中您嘗試在這些圖文框中設定任何 Cookie 會遺失。 這是最常遇到為遺失的動態伺服器網頁 (ASP) 」 或 「 ASP.NET Web 應用程式中的工作階段狀態。 您嘗試存取 工作階段 物件,您希望存在,而傳回空白的字串中的變數。您也看到這個問題在圖文框的內容中如果您的網頁使用的網域名稱系統 (DNS) 名稱之間使用的網際網路通訊協定 (IP) 位址的替代。
發生的原因
Internet Explorer 6 引入隱私喜好設定 (P3P) 專案的平台的支援。 P3P 標準筆記如果一個 FRAMESET 或父視窗的參照另一個網站內...
loadTOCNode(1, 'cause');
Internet Explorer 6 引入隱私喜好設定 (P3P) 專案的平台的支援。 P3P 標準筆記如果一個 FRAMESET 或父視窗的參照另一個網站內一個框架或子視窗,子網站會被視為第三方內容。 網際網路檔案總管會使用預設的隱私權設定 中 的無訊息式地拒絕寄件者的協力廠商網站的 Cookie。
回此頁最上方
解決方案
您可以在 P3P 壓縮原則標頭加入您的子內容,而您可以宣告沒有惡意的動作會執行與使用者的資料。 如果 Internet Explorer 偵測到令人滿意的原則,...
loadTOCNode(1, 'resolution');
您可以在 P3P 壓縮原則標頭加入您的子內容,而您可以宣告沒有惡意的動作會執行與使用者的資料。 如果 Internet Explorer 偵測到令人滿意的原則,Internet Explorer 會允許設定 Cookie。請造訪下列 MSDN 網站令人滿意,並不令人滿意的原則程式碼的完整清單: 在 Internet Explorer 6 中的隱私權http://msdn.microsoft.com/workshop/security/privacy/overview/privacyie6.asp (http://msdn.microsoft.com/workshop/security/privacy/overview/privacyie6.asp) 簡單的壓縮原則符合此條件,如下:P3P: CP="CAO PSA OUR"
這個程式碼範例會示範您的網站提供您自己的連絡人資訊 (CAO),任何分析的資料是唯一"pseudo-analyzed 」,表示資料給您的線上人物代表,而非您實體的身分 (PSA),連接的並且您的資料未提供任何外部機構,這些機構使用 (OUR) 的存取。您可以設定此標頭,如果您在 ASP 網頁中使用 Response.AddHeader 方法。 在 ASP.NET 中,您可以使用 Response.AppendHeader 方法。 您可以使用 [IIS 管理嵌入式管理單元 (inetmgr),若要新增至靜態的檔案。 請遵循這些步驟來此標頭加入靜態檔案:
6. 按一下 [ 開始 ]、 按一下 [ 執行 ],然後再輸入 inetmgr ]。
7. 在 [左邊的瀏覽] 頁面按一下 [適當的檔案或目錄,在您想要新增標頭,以滑鼠右鍵按一下的檔案,然後按一下 [ 內容 您網站上]。
8. 按一下 [ HTTP 表頭 ] 索引標籤。
9. 在 [ 自訂 HTTP 表頭 ] 群組方塊中,按一下 [ 新增 ]。
10. 輸入標頭名稱, P3P ,然後壓縮原則的字串輸入 CP =...,其中"...是您的壓縮原則的適當程式碼。
或者,Internet Explorer 使用者可以修改其隱私權設定,這樣會提示他們接受協力廠商的內容。 下列步驟顯示如何修改隱私權設定:
1. 執行的 Internet Explorer。
2. 按一下 [ 工具 ],然後按一下 [ 網際網路選項 。
3. 按一下 [ 隱私 ] 索引標籤,然後按一下 [ 進階 ]。
4. 按一下以選取 [ 覆寫自動 Cookie 處理 ] 核取方塊。
5. 若要以便 ASP 和 ASP.NET 工作階段 Cookie 設定按一下以選取 [ 永遠允許工作階段 Cookie ] 核取方塊。
6. 若要接收任何類型的第三方 Cookie 提示,] 按一下 [ 提示 第三方 Cookie ] 清單中。
情況:
在IE瀏覽器內無法正常取得Session值,但在Firefox內卻可以正常的取出該Session值。
處理參考一 ( 在ASP程式內標頭加入下面語法 )
response.expires = 0
response.expiresabsolute = Now() - 1
response.addHeader "pragma","no-cache"
response.addHeader "cache-control","private"
response.addHeader "P3P","CP='CAO PSA OUR'"
response.CacheControl = "no-cache"
處理參考二 ( 在IIS內設定 [HTTP表頭] )
1. 按一下 [ 開始 ]、 按一下 [ 執行 ],然後再輸入 inetmgr ]。
2. 在 [左邊的瀏覽] 頁面按一下 [適當的檔案或目錄,在您想要新增標頭,以滑鼠右鍵按一下的檔案,然後按一下 [ 內容 您網站上]。
3. 按一下 [ HTTP 表頭 ] 索引標籤。
4. 在 [ 自訂 HTTP 表頭 ] 群組方塊中,按一下 [ 新增 ]。
5. 輸入 自訂標頭名稱(C):, P3P ,然後輸入 自訂標頭值(U):, CP="CAO PSA OUR"。
下列為參考網址內截出的內容:(為避免網址遺失的問題)
徵狀
如果您實作一個 FRAMESET 其圖文框指向您的夥伴或內部網路上網路上的其他網站,但您使用不同的最上層網域名稱您可能會發現在 Internet Explore...
loadTOCNode(1, 'symptoms');
如果您實作一個 FRAMESET 其圖文框指向您的夥伴或內部網路上網路上的其他網站,但您使用不同的最上層網域名稱您可能會發現在 Internet Explorer 6 中您嘗試在這些圖文框中設定任何 Cookie 會遺失。 這是最常遇到為遺失的動態伺服器網頁 (ASP) 」 或 「 ASP.NET Web 應用程式中的工作階段狀態。 您嘗試存取 工作階段 物件,您希望存在,而傳回空白的字串中的變數。您也看到這個問題在圖文框的內容中如果您的網頁使用的網域名稱系統 (DNS) 名稱之間使用的網際網路通訊協定 (IP) 位址的替代。
發生的原因
Internet Explorer 6 引入隱私喜好設定 (P3P) 專案的平台的支援。 P3P 標準筆記如果一個 FRAMESET 或父視窗的參照另一個網站內...
loadTOCNode(1, 'cause');
Internet Explorer 6 引入隱私喜好設定 (P3P) 專案的平台的支援。 P3P 標準筆記如果一個 FRAMESET 或父視窗的參照另一個網站內一個框架或子視窗,子網站會被視為第三方內容。 網際網路檔案總管會使用預設的隱私權設定 中 的無訊息式地拒絕寄件者的協力廠商網站的 Cookie。
回此頁最上方
解決方案
您可以在 P3P 壓縮原則標頭加入您的子內容,而您可以宣告沒有惡意的動作會執行與使用者的資料。 如果 Internet Explorer 偵測到令人滿意的原則,...
loadTOCNode(1, 'resolution');
您可以在 P3P 壓縮原則標頭加入您的子內容,而您可以宣告沒有惡意的動作會執行與使用者的資料。 如果 Internet Explorer 偵測到令人滿意的原則,Internet Explorer 會允許設定 Cookie。請造訪下列 MSDN 網站令人滿意,並不令人滿意的原則程式碼的完整清單: 在 Internet Explorer 6 中的隱私權http://msdn.microsoft.com/workshop/security/privacy/overview/privacyie6.asp (http://msdn.microsoft.com/workshop/security/privacy/overview/privacyie6.asp) 簡單的壓縮原則符合此條件,如下:P3P: CP="CAO PSA OUR"
這個程式碼範例會示範您的網站提供您自己的連絡人資訊 (CAO),任何分析的資料是唯一"pseudo-analyzed 」,表示資料給您的線上人物代表,而非您實體的身分 (PSA),連接的並且您的資料未提供任何外部機構,這些機構使用 (OUR) 的存取。您可以設定此標頭,如果您在 ASP 網頁中使用 Response.AddHeader 方法。 在 ASP.NET 中,您可以使用 Response.AppendHeader 方法。 您可以使用 [IIS 管理嵌入式管理單元 (inetmgr),若要新增至靜態的檔案。 請遵循這些步驟來此標頭加入靜態檔案:
6. 按一下 [ 開始 ]、 按一下 [ 執行 ],然後再輸入 inetmgr ]。
7. 在 [左邊的瀏覽] 頁面按一下 [適當的檔案或目錄,在您想要新增標頭,以滑鼠右鍵按一下的檔案,然後按一下 [ 內容 您網站上]。
8. 按一下 [ HTTP 表頭 ] 索引標籤。
9. 在 [ 自訂 HTTP 表頭 ] 群組方塊中,按一下 [ 新增 ]。
10. 輸入標頭名稱, P3P ,然後壓縮原則的字串輸入 CP =...,其中"...是您的壓縮原則的適當程式碼。
或者,Internet Explorer 使用者可以修改其隱私權設定,這樣會提示他們接受協力廠商的內容。 下列步驟顯示如何修改隱私權設定:
1. 執行的 Internet Explorer。
2. 按一下 [ 工具 ],然後按一下 [ 網際網路選項 。
3. 按一下 [ 隱私 ] 索引標籤,然後按一下 [ 進階 ]。
4. 按一下以選取 [ 覆寫自動 Cookie 處理 ] 核取方塊。
5. 若要以便 ASP 和 ASP.NET 工作階段 Cookie 設定按一下以選取 [ 永遠允許工作階段 Cookie ] 核取方塊。
6. 若要接收任何類型的第三方 Cookie 提示,] 按一下 [ 提示 第三方 Cookie ] 清單中。
2009年10月15日星期四
SQL處理中英文字串長度的範例
SQL處理中英文字串長度的範例
-- 計算中英文字串長度
DECLARE @string varchar(50)
set @string='一二三456七八9十'
select @string '字串', len(@string) '中英字數', datalength(@string) '資料長度', datalength(@string)-len(@string) '中文字數'
-- 截取中英文字串長度
DECLARE @string varchar(50), @l int
set @string='一二三456七八9十'
set @l=8
select substring(@string,1,@l) '取字數', case when datalength(@string)>8 then convert(varchar(8),@string)+'...' else convert(varchar(8),@string) end '取資料數'
select substring(@string,1,@l)
-- 無法使用下列寫法,主要在「convert(varchar(@l),@string)」內的『varchar(@l)』括號內只可使用數值,無法使用變數 >"<。
select substring(@string,1,@l), case when datalength(@string) > @l then convert(varchar(@l),@string)+'...' else convert(varchar(@l),@string) end
-- 計算中英文字串長度
DECLARE @string varchar(50)
set @string='一二三456七八9十'
select @string '字串', len(@string) '中英字數', datalength(@string) '資料長度', datalength(@string)-len(@string) '中文字數'
-- 截取中英文字串長度
DECLARE @string varchar(50), @l int
set @string='一二三456七八9十'
set @l=8
select substring(@string,1,@l) '取字數', case when datalength(@string)>8 then convert(varchar(8),@string)+'...' else convert(varchar(8),@string) end '取資料數'
select substring(@string,1,@l)
-- 無法使用下列寫法,主要在「convert(varchar(@l),@string)」內的『varchar(@l)』括號內只可使用數值,無法使用變數 >"<。
select substring(@string,1,@l), case when datalength(@string) > @l then convert(varchar(@l),@string)+'...' else convert(varchar(@l),@string) end
2009年10月14日星期三
EXCEL的資料轉置(橫轉直)
2009年10月9日星期五
暫存表判斷 / 產生日期暫存表
參考網址:http://www.blueshop.com.tw/board/show.asp?subcde=BRD20050616212814W4M&fumcde=FUM20041006152735ZFS
-- #暫存表判斷並刪除
IF OBJECT_ID('tempdb..#tmpDate') IS NOT NULL
DROP TABLE #tmpDate
go
DECLARE @sd datetime --開始日期
DECLARE @ed datetime --結束日期
DECLARE @d1 datetime --處理日期
DECLARE @d2 varchar --處理民國日期
set @sd='2008-09-11'
set @ed='2009-01-14'
set @d1=@sd
-- 先轉一筆資料入 #tmpDate 暫存表 drop table #tmpDate
select D_date '西元日期', weeknum '星期別', convert(varchar(4),DATEPART ("year", @d1)-1911)+right(replace(D_date,'-','/'),6) '民國日期' into #tmpDate
from(select convert(varchar(10),@d1,121) D_date, DATEPART ( "weekday" , @d1 )-1 weeknum ) a
select @d1=DATEADD("day" , 1, @d1 ) --加一天
WHILE (@d1 <= @ed) BEGIN insert into #tmpDate select *, convert(varchar(4),DATEPART ("year", @d1)-1911)+right(replace(D_date,'-','/'),6) C_date from(select convert(varchar(10),@d1,121) D_date, DATEPART ( "weekday" , @d1 )-1 weeknum ) a select @d1=DATEADD("day" , 1, @d1 ) END -- 顯示暫存表
select * from #tmpDate
order by [西元日期]
-- #暫存表判斷並刪除
IF OBJECT_ID('tempdb..#tmpDate') IS NOT NULL
DROP TABLE #tmpDate
go
DECLARE @sd datetime --開始日期
DECLARE @ed datetime --結束日期
DECLARE @d1 datetime --處理日期
DECLARE @d2 varchar --處理民國日期
set @sd='2008-09-11'
set @ed='2009-01-14'
set @d1=@sd
-- 先轉一筆資料入 #tmpDate 暫存表 drop table #tmpDate
select D_date '西元日期', weeknum '星期別', convert(varchar(4),DATEPART ("year", @d1)-1911)+right(replace(D_date,'-','/'),6) '民國日期' into #tmpDate
from(select convert(varchar(10),@d1,121) D_date, DATEPART ( "weekday" , @d1 )-1 weeknum ) a
select @d1=DATEADD("day" , 1, @d1 ) --加一天
WHILE (@d1 <= @ed) BEGIN insert into #tmpDate select *, convert(varchar(4),DATEPART ("year", @d1)-1911)+right(replace(D_date,'-','/'),6) C_date from(select convert(varchar(10),@d1,121) D_date, DATEPART ( "weekday" , @d1 )-1 weeknum ) a select @d1=DATEADD("day" , 1, @d1 ) END -- 顯示暫存表
select * from #tmpDate
order by [西元日期]
2009年7月14日星期二
SQL定序衝突問題處理
SQL語法查詢,發生「定序衝突問題」時,訊息如下:
「無法解析 equal to 作業中 "Chinese_Taiwan_Stroke_CI_AS" 與 "Chinese_Taiwan_Stroke_CI_AS_WS" 之間的定序衝突。」
這時必須將相關的資料定序調整,使用的方式如下:
原條件為
a=b
修改後為
cast(a as varchar)COLLATE Chinese_Taiwan_Stroke_CI_AS =cast(b as varchar)COLLATE Chinese_Taiwan_Stroke_CI_AS
將定序調整一致後,就不會有問題了。
「無法解析 equal to 作業中 "Chinese_Taiwan_Stroke_CI_AS" 與 "Chinese_Taiwan_Stroke_CI_AS_WS" 之間的定序衝突。」
這時必須將相關的資料定序調整,使用的方式如下:
原條件為
a=b
修改後為
cast(a as varchar)COLLATE Chinese_Taiwan_Stroke_CI_AS =cast(b as varchar)COLLATE Chinese_Taiwan_Stroke_CI_AS
將定序調整一致後,就不會有問題了。
2009年7月2日星期四
SQL小數四捨五入範例
-- 四捨五入範例
-- 使用「numeric 型態」做小數四捨五入進位處理
--------------------------------------------------------------------------------------------
declare @a1 float, @b1 float, @c1 float, @d1 float, @e1 float
declare @a2 float, @b2 float, @c2 float, @d2 float, @e2 float
/*設定變數初值*/
select @a1 = 0.334, @a2 = 0.335
select @b1 = 0.444, @b2 = 0.445
select @c1 = 0.554, @c2 = 0.455
select @d1 = 0.664, @d2 = 0.465
select @e1 = 0.774, @e2 = 0.475
select @a1 a, @b1 b, @c1 c, @d1 d, @e1 e
select @a2, @b2, @c2, @d2, @e2
print '使用 numeric 型態做小數四捨五入進位處理'
select convert(numeric(5,2),@a1), convert(numeric(5,2),@b1), convert(numeric(5,2),@c1), convert(numeric(5,2),@d1), convert(numeric(5,2),@e1)
select convert(numeric(5,2),@a2), convert(numeric(5,2),@b2), convert(numeric(5,2),@c2), convert(numeric(5,2),@d2), convert(numeric(5,2),@e2)
--------------------------------------------------------------------------------------------
-- 整數相除的小數處理範例
--------------------------------------------------------------------------------------------
declare @a int
declare @b int
declare @c int, @d int, @e int
/*設定變數初值*/
select @a = 1000
select @b = 3
select @c = 43
select @d = 6
select @e = 7
select @a/@b t1, @a/@c t2, @a/@b*1.0 t3, 1.0*@a/@b b, 1.0*@a/@c c, 1.0*@a/@d d, 1.0*@a/@e e
, convert(numeric(5,2),(1.0*@a/@b)) b1
, convert(numeric(5,2),(1.0*@a/@c)) c1
, convert(numeric(5,2),(1.0*@a/@d)) d1
, convert(numeric(5,2),(1.0*@a/@e)) e1
-- 使用「numeric 型態」做小數四捨五入進位處理
--------------------------------------------------------------------------------------------
declare @a1 float, @b1 float, @c1 float, @d1 float, @e1 float
declare @a2 float, @b2 float, @c2 float, @d2 float, @e2 float
/*設定變數初值*/
select @a1 = 0.334, @a2 = 0.335
select @b1 = 0.444, @b2 = 0.445
select @c1 = 0.554, @c2 = 0.455
select @d1 = 0.664, @d2 = 0.465
select @e1 = 0.774, @e2 = 0.475
select @a1 a, @b1 b, @c1 c, @d1 d, @e1 e
select @a2, @b2, @c2, @d2, @e2
print '使用 numeric 型態做小數四捨五入進位處理'
select convert(numeric(5,2),@a1), convert(numeric(5,2),@b1), convert(numeric(5,2),@c1), convert(numeric(5,2),@d1), convert(numeric(5,2),@e1)
select convert(numeric(5,2),@a2), convert(numeric(5,2),@b2), convert(numeric(5,2),@c2), convert(numeric(5,2),@d2), convert(numeric(5,2),@e2)
--------------------------------------------------------------------------------------------
-- 整數相除的小數處理範例
--------------------------------------------------------------------------------------------
declare @a int
declare @b int
declare @c int, @d int, @e int
/*設定變數初值*/
select @a = 1000
select @b = 3
select @c = 43
select @d = 6
select @e = 7
select @a/@b t1, @a/@c t2, @a/@b*1.0 t3, 1.0*@a/@b b, 1.0*@a/@c c, 1.0*@a/@d d, 1.0*@a/@e e
, convert(numeric(5,2),(1.0*@a/@b)) b1
, convert(numeric(5,2),(1.0*@a/@c)) c1
, convert(numeric(5,2),(1.0*@a/@d)) d1
, convert(numeric(5,2),(1.0*@a/@e)) e1
訂閱:
文章 (Atom)



