2012年8月30日 星期四

Web 欄位輸入控制

in javascript:
function functionxxx(e)
{
var key = window.event ? e.keyCode : e.which;
var keychar = String.fromCharCode(key);
reg = /\\d|[\\b]/;//allow number only and backspace
return reg.test(keychar);
}

in HTML:
onKeyPress=return functionxxx(event);

//數字與Backspace鍵
reg = /\\d|[\\b]/;

//數字,a~f,A~F與Backspace鍵
reg = /\\d|[a-f]|[A-F]|[\\b]/;
//reg:Regular Expression
正規表示式
字元說明簡單範例
\避開特殊字元/A\*/ 可用於比對 "A*",其中 * 是一個特殊字元,為避開其特殊意義,所以必須加上 "\"
^比對輸入列的啟始位置/^A/ 可比對 "Abcd" 中的 "A",但不可比對 "aAb"
$比對輸入列的結束位置/A$/ 可比對 "bcdA" 中的 "A",但不可比對 "aAb"
*比對前一個字元零次或更多次/bo*/ 可比對 "Good booook" 中的 "booo",亦可比對 "Good bk" 中的 "b"
+比對前一個字元一次或更多次,等效於 {1,}/a+/ 可比對 "candy" 中的 "a",但不可比對 "caaandy"
?比對前一個字元零次或一次/e?le?/ 可比對 "angel" 中的 "el",但不可比對 "angle"
.比對任何一個字元(但換行符號不算)/.n/ 可比對 "nay, an apple is on the tree" 中的 "an" 和 "on",但不可比對 "nay"
(x)比對 x 並將符合的部分存入一個變數/(a*) and (b*)/ 可比對 "aaa and bb" 中的 "aaa" 和 "bb",並將這兩個比對得到的字串設定至變數 RegExp.$1 和 RegExp.$2。
xy比對 x 或 y/a*b*/g 可比對 "aaa and bb" 中的 "aaa" 和 "bb"
{n}比對前一個字元 n 次,n 為一個正整數/a{3}/ 可比對 "lllaaalaa" 其中的 "aaa" 但不可比對 "aa"
{n,}比對前一個字元至少 n 次,n 為一個正整數/a{3,}/ 可比對 "aa aaa aaaa" 其中的 "aaa" 及 "aaaa" 但不可比對 "aa"
{n,m}比對前一個字元至少 n 次,至多 m 次,m、n 均為正整數/a{3,4}/ 可比對 "aa aaa aaaa aaaaa" 其中的 "aaa" 及 "aaaa" 但不可比對 "aa" 及 "aaaaa"
[xyz]比對中括弧內的任一個字元/[ecm]/ 可比對 "welcome" 中的 "e" 或 "c" 或 "m"
[^xyz]比對不在中括弧內出現的任一個字元/[^ecm]/ 可比對 "welcome" 中的 "w" "l" "o" 可見出其與 [xyz] 功能相反 同時請同學也注意 /^/ 與 [^] 之間功能的不同
[\b]比對退位字元(Backspace character)可以比對一個 backspace ,也請注意 [\b] 與 \b 之間的差別
\b比對英文字的邊界,例如空格例如 /\bn\w/ 可以比對 "noonday" 中的 'no' ;
/\wy\b/ 可比對 "possibly yesterday." 中的 'ly'
\B比對非「英文字的邊界」例如, /\w\Bn/ 可以比對 "noonday" 中的 'on' ,
另外 /y\B\w/ 可以比對 "possibly yesterday." 中的 'ye'
\cX比對控制字元(Control character),其中 X 是一個控制字元/\cM/ 可以比對 一個字串中的 control-M
\d比對任一個數字,等效於 [0-9]/[\d]/ 可比對 由 "0" 至 "9" 的任一數字 但其餘如字母等就不可比對
\D比對任一個非數字,等效於 [^0-9]/[\D]/ 可比對 "w" "a"... 但不可比對如 "7" "1" 等數字
\f比對 form-feed若是在文字中有發生 "換頁" 的行為 則可以比對成功
\n比對換行符號若是在文字中有發生 "換行" 的行為 則可以比對成功
\r比對 carriage return
\s比對任一個空白字元(White space character),等效於 [ \f\n\r\t\v]/\s\w*/ 可比對 "A b" 中的 "b"
\S比對任一個非空白字元,等效於 [^ \f\n\r\t\v]/\S/\w* 可比對 "A b" 中的 "A"
\t比對定位字元(Tab)
\v比對垂直定位字元(Vertical tab)
\w比對數字字母字元(Alphanumerical characters)或底線字母("_"),等效於 [A-Za-z0-9_]/\w/ 可比對 ".A _!9" 中的 "A" "_" "9"
\W比對非「數字字母字元或底線字母」,等效於 [^A-Za-z0-9_]/\W/ 可比對 ".A _!9" 中的 "." " " "!" 可見出其與 \w 功能恰好相反
\ooctal比對八進位,其中octal是八進位數目/\oocetal123/ 可比對 與 八進位的ASCII中 "123" 所相對應的字元值
\xhex比對十六進位,其中hex是十六進位數目/\xhex38/ 可比對 與 16進位的ASCII中 "38" 所相對應的字元

通用式說明及範例比對不成立之字串
/a/含字母 "a" 的字串,例如 "ab", "bac", "cba""xyz"
/a./含字母 "a" 以及其後任一個字元的字串,例如 "ab", "bac"(若要比對.,請使用 \.)"a", "ba"
/^xy/以 "xy" 開始的字串,例如 "xyz", "xyab"(若要比對 ^,請使用 \^)"axy", "bxy"
/xy$/以 "xy" 結尾的字串,例如 "axy", "abxy"以 "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中間夾五個(非換行)字元

與通用式相關的方法功能
re.exec(string)從字串 string 抽取符合通用式 re 的子字串,並以字串陣列傳回
re.test(string)以字串 string 比對通用式 re,並傳回比對結果(true 代表比對成功,false 代表比對失敗)
string.search(re)通用式 re 在某個字串 string 出現的位置
string.match(re)從字串 string 抽取符合通用式 re 的子字串,並以字串陣列傳回,此功能和 re.exec(string) 相同
string.replace(renewStr)將字串 string 符合通用式 re 的部分,代換為 newStr

2012年8月24日 星期五

花東親子旅遊

花蓮:
1.海濱自行車道(洄瀾客棧~南濱夜市)(免費)
2.立川漁場摸黃金蜆(門票),豐春冰果室吃柴燒紅豆芋頭冰
3.慕谷慕魚(免費)
4.柴魚博物館,七星潭(免費)
5.鯉魚潭(免費)
6.自強夜市,南濱夜市,市區夜市(免費)
7.東華大學(免費)
8.雲山水(免費)
9.六十石山金針花(免費)
10.光復糖廠(免費)
11.馬太鞍濕地
12.兆豐農場(門票,非常大)
13.瑞穗牧場(免費)

台東:
1.悟饕池上飯包博物館(免費,可買好吃的飯包)
2.關山鎮環鎮自行車道(13公里)+親水公園(門票 50元但值得)
3.鹿野高台熱氣球(免費)
4.初鹿牧場(門票小貴 100元 不能抵消費,區域不大)
5.原生應用植物園(門票可以完全抵消費)
6.太麻里金針山(免費,有點遠且規模比不上六十石山,但路途中可遠眺海岸)