FormatDateTime(Now, DateFormat.GeneralDate) 10/01/2008 10:55:06 AM FormatDateTime(Now, DateFormat.LongDate) Thursday, October 1, 2008 FormatDateTime(Now, DateFormat.ShortDate) 10/01/2008 FormatDateTime(Now, DateFormat.LongTime) 10:55:06 AM FormatDateTime(Now, DateFormat.ShortTime) 10:55
2012年7月2日 星期一
vb.net的時間格式化
時間格式化的方法
2012年4月18日 星期三
資料庫比對checkbox是否打勾
後台編輯頁面時用的方法..因為是比對字串..若有類似的字串時..不知道會不會發生誤判..
較安全做法大概還是得把值改成123456...再另外去轉成要的字串值可能可以更精確的比對出結果..
前台html
<input name="Application" id="Application1" type="checkbox" value="車位" />車位
<input name="Application" id="Application2" type="checkbox" value="雅房" />雅房
<input name="Application" id="Application3" type="checkbox" value="套房" />套房
<asp:Literal ID="Literal2" runat="server"></asp:Literal>
為了撈資料方便 直接把JS寫到.VB中...再呼叫出來用
.VB的部分程式碼
Literal2.Text = "<script language='javascript'>" & vbCrLf
Literal2.Text &= "var array ='" & oReader("Application") & "';" & vbCrLf
Literal2.Text &= "for (var i=1;i<=16;i++){" & vbCrLf
Literal2.Text &= " if(array.indexOf(document.getElementById('Application'+i).value) > -1){" & vbCrLf
Literal2.Text &= " document.getElementById('Application'+i).checked=true" & vbCrLf
Literal2.Text &= " }" & vbCrLf
Literal2.Text &= "}" & vbCrLf
Literal2.Text &= "</script>" & vbCrLf
oReader("Application")是撈出資料表的資料再定義字串去比對
因為是checkbox..所以只要資料中有的就是要打勾的了
所以直接用array.indexOf(document.getElementById('Application'+i).value) > -1 去判斷位置
只要有資料一定是大於-1
較安全做法大概還是得把值改成123456...再另外去轉成要的字串值可能可以更精確的比對出結果..
前台html
<input name="Application" id="Application1" type="checkbox" value="車位" />車位
<input name="Application" id="Application2" type="checkbox" value="雅房" />雅房
<input name="Application" id="Application3" type="checkbox" value="套房" />套房
<asp:Literal ID="Literal2" runat="server"></asp:Literal>
為了撈資料方便 直接把JS寫到.VB中...再呼叫出來用
.VB的部分程式碼
Literal2.Text = "<script language='javascript'>" & vbCrLf
Literal2.Text &= "var array ='" & oReader("Application") & "';" & vbCrLf
Literal2.Text &= "for (var i=1;i<=16;i++){" & vbCrLf
Literal2.Text &= " if(array.indexOf(document.getElementById('Application'+i).value) > -1){" & vbCrLf
Literal2.Text &= " document.getElementById('Application'+i).checked=true" & vbCrLf
Literal2.Text &= " }" & vbCrLf
Literal2.Text &= "}" & vbCrLf
Literal2.Text &= "</script>" & vbCrLf
oReader("Application")是撈出資料表的資料再定義字串去比對
因為是checkbox..所以只要資料中有的就是要打勾的了
所以直接用array.indexOf(document.getElementById('Application'+i).value) > -1 去判斷位置
只要有資料一定是大於-1
2012年4月16日 星期一
2012年2月20日 星期一
JS+HTML的收合面板
參考他人寫法在略做修改...
function show1(o){
//alert(window.event.srcElement.id)
document.getElementById(o.id+"S").style.display= (document.getElementById(o.id+"S").style.display=="none")?(""):("none");
123456
利用onclick的函式先給予this來抓取資料
再用函式中o.id抓取該td的id
最後讓該id+上s讓下面的內容id的display可以切換
-------------------------------------------------------------
本來用
show(){
alert(this.id);
}
但發現這樣抓不到 應該是程式無法指向到this得位置...
後來換
alert(window.event.srcElement.id) 就抓到了
但便於撰寫
還是用上面寫法比較乾淨俐落點!
節錄自 重灌狂人
function show0(){
add0.style.display= (add0.style.display=="none")?(""):("none");
3-13:正規表示法:表單資料驗證
2012年2月19日 星期日
facebook , plurk , twitter推文連結語法
節錄自 重灌狂人
Plurk噗浪推文按鈕語法:
<a href="javascript: void(window.open('http://www.plurk.com/?qualifier=shares&status=' .concat(encodeURIComponent(location.href)) .concat(' ') .concat('(') .concat(encodeURIComponent(document.title)) .concat(')')));">[推到Plurk]</a>
其中「?qualifier=shares」這段裡的「shares」可以改成loves、likes、gives、says...等,如果對方是使用中文的Plurk介面也沒關係,推文時噗浪會自動把「says」轉成「說」,把「likes」轉成「喜歡」。
Twitter噗浪推文按鈕語法:
<a href="javascript: void(window.open('http://twitter.com/home/?status='.concat(encodeURIComponent(document.title)) .concat(' ') .concat(encodeURIComponent(location.href))));">[推到Twitter]</a>
Facebook 推文按鈕語法:
<a href="javascript: void(window.open('http://www.facebook.com/share.php?u='.concat(encodeURIComponent(location.href)) ));">[推到 Facebook]</a>
2012年2月15日 星期三
js收合面版參考
<a href="#" onclick="show<%=i%>();"><%=issueCan.get(i).getName()%></a>
function show0(){
add0.style.display= (add0.style.display=="none")?(""):("none");
}
<td>
<div id="add<%=i%>" style="display:none">
<%=issueCan.get(i).getContent()%>
<div id="add<%=i%>" style="display:none">
<%=issueCan.get(i).getContent()%>
</div>
</td>
</td>
參考用的原始碼
2012年1月18日 星期三
使用JS正規法表單資料驗證
以下文章轉載自國立清華大學
為GOOLE庫存頁面
如有侵權請告知會盡速刪除!!
3-13:正規表示法:表單資料驗證
「正規表示法」或「正規式」(Regular expressions)是在 UNIX 世界中發展出來的字串比對技巧,其基本概念是用一套簡單(但功能強大)的符號來比對字串,並可對符合比對條件的字串進行修改或其他運算。事實上,UNIX 的許多軟體或指令都支援正規表示法,例如 grep、sed、awk、ed、vi、emacs 等。(這些東西大概只有像我這樣的 LKK 才會用。)尤其是 Perl,更是將正規表示法發揮的淋漓盡致。
Netscape 及 IE 在第四版後都支援 JavaScript 的正規表示法,特別適用於表單資料的驗證與修改。事實上,JavaScript 的正規表示法和 Perl 幾乎一模一樣,因此,在本章學到的正規表示法,也可以完全適用於 Perl。(一魚兩吃,簡直太棒了!)
JavaScript 的正規式(Regular expressions)是一個內建的物件,其建構函示(Construction functoin)為 RegExp,典型用法如下:
上述用法也可以寫成:
re = new RegExp("pattern", "flag")
其中,pattern 代表以正規表示法來顯示的字串,flag 則是比對的方式。flag 的值可能有三種,分別解釋如下:
re = /pattern/flag
舉例來說,我們的身份證字號的格式是由一個英文字母加上九個數字組合而成,如果我們要求使用者輸入身份證字號,就可以使用 JavaScript 的正規表示法來驗證其格式的正確性。例如,我們可用下列表單來要求使用者輸入身份證字號:
- g:全域比對(Global match)
- i:忽略大小寫(Ignore case)
- gi:全域比對並忽略大小寫
在上例中,我們利用 onBlur 事件來進行正規式的比對,換句話說,當使用者填完資料,要離開此欄位的時候,JavaScript 即會測知 onBlur 事件,並呼叫函數 checkID() 來對填入的資料進行驗證。 (欲測試其效果,只需刪除欄位內的任一個字元,再到欄位外點一下,就可以看到警告視窗了。)相關原始碼如下: 在上述原始碼中,/^[A-Z]\d{9}$/ 就是一個正規式,[A-Z] 代表由 A 至 Z 的所有可能英文字母,\d 代表由 0 至 9 的數目字(事實上也可以寫成 [0-9]),{9} 則代表需要有九個數目字,^ 代表字串開始位置,$ 代表字串結束位置,因此 /^[A-Z]\d{9}$/ 就代表可以比對身份證字號的正規式。formElement.value 代表使用者輸入的字串,re.test() 則會傳回 true 或 false,代表比對是否成功。若要不限定是大寫英文字母,只需將正規式改成 /^[a-zA-Z]\d{9}$/g 就可以了!(注意:若不加入 ^ 和 $,那麼 /[A-Z]\d{9}/ 就會比對到其他不合法的身份證字號,例如 AGF123456789 或是 F1234567890 等。因此,加入 ^ 和 $ 可保證比對正確的字串一定是由由一個大寫英文字母加上九個數字所構成。)
事實上,身份證字號本身就有內在的編碼規則,這些規則和使用者的性別有關,因此若要實現較完整的表單驗證,就必須應用較完整的身份證編碼規則。
另一個簡單的例子,是要求使用者輸入信用卡號碼,這是一組16個數字的號碼,例如:
當 onBlur 發生時,換句話說,JavaScript 會呼叫函數 checkCreditCard( ) 來對填入的資料進行驗證。相關原始碼如下: 在上例中,很顯然地,/^\d{4}-\d{4}-\d{4}-\d{4}$/ 就代表正確的信用卡格式。
下一個例子,則是用正規表示法來驗證使用者的英文名字,例如:
當 onBlur 發生時,換句話說,JavaScript 會呼叫函數 checkEnglishName( ) 來對填入的資料進行驗證。相關原始碼如下:
正規式物件的方法可列表如下:
在上述範例中,我們只用到了正規式物件的 test() 方法來判斷比對是否成功,其他方法會在後序章節提到。
正規式物件的方法 功能 re.compile(pattern, flag) 對正規式物件 re 進行編譯,以增加比對速度 re.exec(string) 或 re(string) 比對正規式,並傳回陣列 re.test(string) 比對正規式,並傳回比對結果(成功或失敗)
在進行表單資料驗證之前,我們應先進行表單資料修改,例如拿掉不必要的空格、英文字母大小寫轉換等,這些工作也可以由字串的 replace() 方法或正規式的 exec() 方法來達成,這是我們下一節的主題。
在下列的表格中,我們使用幾個簡單的範例來對正規式的應用做較完整的說明:
請注意在上表中,"^" 在兩條斜線中,代表一個字串的開始位置,因此 /^xy/ 代表以 "xy" 開始的字串。 同理,"$" 在兩條斜線中,代表一個字串的結束位置,因此 /xy$/ 代表以 "xy" 結束的字串。 但是如果將 "^" 放在兩個方括弧中,就代表「否定」,因此 [^aeiouAEIOU] 代表不含母音之字串。
正規式 說明及範例 比對不成立之字串 /a/ 含字母 "a" 的字串,例如:"ab", "bac", "cba" "xyz" /a./ 含字母 "a" 以及其後任一個字元的字串,例如:"ab", "bac" "a", "ba" /^xy/ 以 "xy" 開始的字串,例如:"xyz", "xyab" "axy", "bxy" /xy$/ 以 "xy" 結尾的字串,例如:"axy", "abxy" "xya", "xyb" [13579] 包含 "1" 或 "3" 或 "5" 或 "7" 或 "9" 的字串,例如:"a3b", "1xy" "y2k" [0-9] 含數字之字串 不含數字之字串 [a-z0-9] 含數字或小寫字母之字串 不含數字及小寫字母之字串 [a-zA-Z0-9] 含數字或字母之字串 不含數字及字母之字串 b[aeiou]t "bat", "bet", "bit", "bot", "but" "bxt", "bzt" [^0-9] 不含數字之字串 含數字之字串 [^aeiouAEIOU] 不含母音之字串 含母音之字串 [^\^] 不含 "^" 之字串,例如:"xyz", "abc" "xy^", "a^bc"
有些正規式會常被用到,因此已被定義為特定字元,這些字元可列表說明如下:
此外,我們可定義字元的重複次數,如下:
正規表示法的特定字元 說明 等效的正規表示法 \d 數字 [0-9] \D 非數字 [^0-9] \w 數字、字母、底線 [a-zA-Z0-9_] \W 非 \w [^a-zA-Z0-9_] \s 空白字元 [\r\t\n\f] \S 非空白字元 [^\r\t\n\f]
各位現在已經可以慢慢體會到正規表示式的威力了!利用同樣的方法,我們可以對各式各樣的表單輸入進行驗證,請參考下述範例。
正規表示法 說明 /a?/ 零或一個 a /a+/ 一或多個 a /a*/ 零或多個 a /a{4}/ 四個 a /a{5,10}/ 五至十個 a /a{5,}/ 至少五個 a /a{,3} 至多三個 a /a.{5}b/ a 和 b中間夾五個(非換行)字元
注意事項
以 RegExp(pattern, flag) 的方式來建立正規式物件時,若 pattern 包含以反斜線開頭的特殊字元(例如 \d、\w、\s 等)時,我們必須再加上一個反斜線來保留其特殊意義。例如:
以 RegExp 為主的等效表示法為:
re = /\d+\s\w+/g
re = new RegExp("\\d+\\s\\w+", "g");
訂閱:
文章 (Atom)
注意事項