十章通用表示法.ppt

上传人:京东小超市 文档编号:6093286 上传时间:2020-09-07 格式:PPT 页数:45 大小:386.50KB
返回 下载 相关 举报
十章通用表示法.ppt_第1页
第1页 / 共45页
十章通用表示法.ppt_第2页
第2页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《十章通用表示法.ppt》由会员分享,可在线阅读,更多相关《十章通用表示法.ppt(45页珍藏版)》请在三一文库上搜索。

1、第十章 通用表示法 張智星 jangmirlab.org http:/mirlab.org/jang 台大資工系 多媒體檢索實驗室 履 勤 舷 首 饲 申 博 锐 童 自 殿 狸 玖 腐 酪 跳 淖 疤 刺 差 册 歼 朔 柯 酝 项 仙 弟 朱 荷 谎 繁 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 本章大綱 n大綱 n本章介紹通用表示法,使用強大的字串比對方式, 可以在進行 JavaScript程式設計時,能夠有事半功倍 的效果。 n主題 n10-1:資料驗證 n10-2:資料修改 n10-3:通用式相關列表 n10-4:常

2、用資料規則 2/45 题 合 钞 秃 朝 潘 蔫 超 竹 锅 腕 订 撩 木 篙 乓 漠 筑 瞩 宏 脱 污 俞 闯 汰 蒙 环 令 疟 变 缮 彩 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 10-1:資料驗證 n本小節介紹通用表示法及其用法。 3/45 取 彰 歇 单 鞘 返 匆 风 咕 颧 丢 购 汰 蚂 艺 督 戮 棒 午 口 浊 佯 钡 獭 纸 戮 玄 谎 芜 枢 闪 袱 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 基本介紹 n通用表示法或通用式(Reg

3、ular expressions)是在 UNIX中發展出的 字串比對 技 巧。 nRegularexpressions應該翻成正規表示法或正規式,但 是我們使用通用表示法或通用式似乎更能適切地表達 其功能。 n目標:用格式簡單、功能強大的符號來比對複雜的 字串。 n許多軟體或指令都支援通用表示法。 nJavaScript及Vbscript:格式稍不同,但功能一樣 nUnix指令:如 grep、sed、awk、ed、vi、emacs等。 nMATLAB,Python,Perl, 4/45 霍 雾 沤 滋 政 冲 号 肝 潦 言 仇 锰 蔽 旦 充 州 鬼 漂 刘 眠 键 匡 哉 耗 帘 勾 妮

4、帐 澜 膝 扶 来 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 JavaScript的通用式 n通用式是一個內建的物件 n建構函數( Constructionfunctoin)為RegExp。 n用法 n說明 npattern是通用表示法的字串。 nflag是比對的方式: ng:全域比對( Globalmatch) ni:忽略大小寫( Ignorecase) ngi:全域比對並忽略大小寫 re=newRegExp(pattern,flag) re=/pattern/flag/上面的簡寫格式 5/45 笔 盟 薛 币 织 韩 罗

5、仆 圭 术 妈 醋 耀 萎 瓷 闷 票 刑 察 拍 典 孤 匡 卒 徒 猩 盒 秃 荐 卿 减 烙 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 範例10-1(1) n主題:簡易身分證字號驗證 n連結: regExpID01.htm(remotehost,localhost) n程式碼重點 n說明 nre=/A-Zd9$/就是一個通用式。 n以re.test()比對字串 string,回傳 true代表比對正確, 反之回傳 false。 functioncheckID(string) re=/A-Zd9$/; if(re.test

6、(string)alert(成功!符合 +re+的格式! ); elsealert(失敗!不符合 +re+的格式! ); 6/45 蜀 偶 要 廊 富 舞 蔫 罚 叠 宽 圈 郸 烈 弹 割 卜 汇 擞 会 赞 悠 裹 忘 握 陶 蔷 馁 折 滔 铱 止 纺 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 範例10-1(2) n通用表示法解釋: /A-Zd9$/ n比對數個字元中的任一個字元,可用,並可用 -來代表字母或是數字的範圍。 nA-Z 代表由 A至Z的任一個英文字母。(亦可寫成 ABCDEFGHIJKLMNOPQRSTUV

7、WXYZ) na-zA-Z 代表不限大小寫的一個英文字母 nd 代表0至9的數字。 n亦可寫成 0-9或0123456789 n9代表前一個字元的重複次數。 nd9 代表需要有九個數字。 n代表字串開始位置。 n$ 代表字串結束位置。 n若沒以上兩個符號,那麼只要任一個字串中間比對成功即 可。 7/45 敢 马 齿 褪 虫 源 斜 继 沃 吝 圭 题 惜 鸯 炎 溯 格 蔚 涅 猫 协 搁 虽 嫌 放 婆 岩 堤 虚 薄 轩 妊 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 範例10-2 n主題:簡易信用卡卡號驗證 n連結: re

8、gExpCreditCardNumber01.htm(remotehost, localhost) n程式碼重點 n說明 n也可寫成: re=/(d4-)3d4$/ n重複的部分多於一個字母,必須將需要重複的部分 放入小括號內,再由大括號包夾重複的次數。 re=/d4-d4-d4-d4$/ 8/45 埠 包 廓 诛 陈 勋 批 唉 杭 人 奔 朽 徒 梨 酝 后 陪 糖 填 胆 龄 纪 刷 振 吸 鸵 集 描 驴 公 说 遮 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 範例10-3 n主題:簡易英文名字驗證 n連結: regEx

9、pEnglishName01.htm(remotehost,local host) n程式碼重點 n說明 nA-Za-z-:一個英文字母(可以大寫或小寫),或字 元 - n-:已經有特殊意義,必須在-之前加上 n+:重複前一個字元一次或多次 n A-Za-z-+ :英文字或 -形成的字串,且長度至少 為1 ns:空白字元,可以是空格、定位鍵、換列字元 re1=/A-Za-z-+s+A-Za-z-+$/; re2=/A-Za-z-+s+A-Za-z-+s+A-Za-z-+$/; 9/45 雏 穷 关 绞 队 本 拙 奏 菊 主 湾 颇 跟 掌 洽 康 镶 夸 联 缺 杉 娟 当 檄 揭 铜 埂

10、颐 看 然 声 耶 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 範例10-4 n主題:簡易電子郵件格式驗證 n連結: regExpEmail01.htm(remotehost,localhost) n程式碼重點 n說明 n.:比對任一個字元(不包含換列字元) n.+:長度不為零的字串 n.: .原先已具有特殊意義,必須加上反斜 線 n.2,3:長度為 2到3個字元 re=/.+.+.2,3$/; 10/45 俄 呕 趾 缓 针 凰 娟 攻 奉 拨 桓 珠 选 级 昧 赔 练 染 上 鼎 雇 杆 颓 摆 终 稠 屿 姻 谚 满 咋

11、 呜 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 範例10-5 n主題:電子郵件格式驗證(可避開含有空白的電子郵件 帳號) n連結: regExpEmail02.htm(remotehost,localhost) n說明 ns :所有可能的空白字元,包含空白、定位鍵、換 列字元等(不包含全形的空白) n:在中括弧內是代表否定 注意注意 :在一般通用表示法的意義是字串開始的位置 ,但放在 中括弧內中括弧內 ,則代表否定或非。 ns+:一個或多個非空白字元所形成的字串 re=/s+s+.s2,3$/; 11/45 贺 艾 而 泪 省

12、 徐 币 比 奏 葫 逛 雄 俱 皿 倍 床 腾 翻 旷 粒 登 厄 爪 揖 蹋 址 巷 居 纹 退 乱 缮 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 範例10-5(2) n主題:電子郵件格式驗證(可避開含有空白的電子郵件 帳號) n若要對電郵進行更嚴苛的比對,上述通用式可以改 成 n其中w代表一個數字、字母或底線,全等於a-zA- Z0-9_。(但這樣嚴苛的標準也可能錯誤地阻擋正常 的電郵。) re=/w+w+.w2,3$/; 12/45 盂 瓷 仅 豹 焊 项 迄 删 寻 丁 后 莉 恨 君 叠 欺 捂 琢 稚 阻 梆 仔

13、 币 钻 紊 燃 拒 盯 苟 粪 扭 止 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 範例10-6 n主題:通用式的完整測試頁(列出比對到字串 ) n連結: regExpTest01.htm(remotehost,localhost) n程式碼重點 n說明 n使用了字串的 match()方法,對通用式進行比對。 nmatched=str.match(regexp)可將比對到的字串送到 一個陣列,以便後續列出比對結果。 varmatched=str.match(regexp); for(vari=0;imatched.length

14、;i+) dispstr=dispstr+n+matchedi; 13/45 吮 岔 趾 救 纺 叭 域 焰 擞 镐 亢 涵 躯 靛 航 蝴 愉 因 掳 倚 巢 待 慑 疵 朗 注 蟹 胰 曾 浮 帝 厄 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 10-2:資料修改 n本小節介紹如何使用通用表示法來進行 字串字串的修改。 14/45 触 牟 胞 谎 输 纱 痘 鸟 验 柬 挤 颠 咽 忠 振 舅 胺 易 给 舅 段 姜 冗 痕 撩 堵 悸 企 择 街 足 祈 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaSc

15、ript 程式設計與應用:用於網頁用戶端 通用表示法的字串方法 n用途 n強化搜尋比對 n立即修改 (修特別是改表單資料) n方法 字串方法字串方法 功能功能 string.search(re)通用式 re在某個字串 string出現的位 置 string.match(re) 從字串 string抽取符合通用式 re的子 字串,並以字串陣列傳回 string.replace(re,newStr) 將字串 string符合通用式 re的部分, 代換為 newStr 15/45 讲 扶 励 肾 荔 娠 裕 脖 防 持 挞 颠 她 柿 顷 氯 砸 稳 寐 感 谭 丈 体 罪 席 窟 漱 纯 毖 甘

16、航 架 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 範例10-7 n主題:搜尋並列出位置(判斷第一個符合的位置) n連結: regExpSearch01.htm(remotehost,localhost) n程式碼重點 n說明 nstr.search(re)將會傳回符合 re的第一個位置。 (若沒 找到則回傳 -1) nstr.search(re)只能用來搜尋某個通用式在一個字串的 第一次出現的位置。 functionregExpMatch(string,pattern,flag) varregexp=newRegExp(pat

17、tern,flag); varindex=string.search(regexp); alert(index); 16/45 蓝 漳 狠 祟 地 彝 充 蛀 伴 攀 侩 析 朗 奎 佃 谷 越 拔 腺 券 轮 脓 弟 咕 乒 料 腕 管 垄 诛 哄 四 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 範例10-8 n主題:搜尋並列出位置(取出符合的所有子字串) n連結: regExpMatch01.htm(remotehost,localhost) n程式碼重點 n說明 n使用string.match(regexp)可回傳符合的所

18、有子字串。 n傳回的 matched變數是一個陣列,包含所比對到的 字串。 functionregExpMatch(string,pattern,flag) varregexp=newRegExp(pattern,flag); varmatched=string.match(regexp); alert(matched); 17/45 旧 脐 掏 镀 镀 钻 衡 坞 阀 莉 兼 胜 材 瓣 申 渔 爷 啼 乘 醛 搐 铰 郧 鹃 贡 沙 碱 糙 窝 汤 履 文 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 範例10-9 n主題:搜

19、尋並代換 n連結: regExpReplace01.htm(remotehost,localhost) n程式碼重點 n說明 n使用str.replace將符合通用式的第一部分替換成新字 串。 n欲將所有符合的替換成新字串,只要將選項改成g 。 functionregExpReplace(strId,pat1id,pat2id,flagId) varregexp=newRegExp(pat1id.value,flagId.value); varstr=strId.value; varnewString=str.replace(regexp,pat2id.value); alert(newStr

20、ing); 18/45 姆 肢 抓 替 驴 位 谰 缔 案 盘 碘 隶 倡 种 秃 慑 蝴 疫 赂 铣 卖 妄 碴 肥 咖 酱 鸭 胳 婿 彬 钞 安 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 範例10-10 n主題:修正中文姓名(去除表單前後空白 ) n連結: regExpReplace02.htm(remotehost,localhost) n程式碼重點 n說明 ns:英文空白字元或大五碼的全形空白。 nreplace(/s+/g,):將 (/s+/g 此類字 串全部代換為空字串。 functioncheckChinese

21、Name(uiControl) uiControl.value=uiControl.value.replace(/s+/g,); 19/45 摔 八 峦 疯 吕 肮 质 准 砸 忿 杖 狱 庭 以 各 淳 釉 唬 午 嘱 抑 涡 畸 衙 珍 种 致 购 叮 糖 绒 乓 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 範例10-11 n主題:修改英文姓名(消除前後空白並合併中間空白) n連結: regExpReplace03.htm(remotehost,localhost) n程式碼重點 n說明 n|可以代表或。 n刪除頭尾字串兩式

22、可合併: nstr=str.replace(/s+|s+$/g,); str=str.replace(/s+/g,);/刪除頭部的空白字串 str=str.replace(/s+$/g,);/刪除尾部的空白字串 str=str.replace(/s+/g,);/將空白字串換成一半形空 格 20/45 贯 壳 尔 暖 苹 夏 誓 碎 肝 刃 衷 疽 饥 益 闭 坏 倍 毁 巧 更 缝 班 岂 乳 靳 腑 保 漆 今 钞 畴 逮 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 通用式的比對原則 n貪心比對 (GreedyMatch) n

23、遇到重複字元時,貪到越多的字元越好 。 n最小比對 (MinimumMatch) n必須在重複字元後面加上一個問號,代表 在可能比對成功的情況下,比對越少越好 。 21/45 滓 臼 川 烽 惠 蒋 裴 炙 扩 开 警 贰 守 诲 溅 优 刷 恕 寞 屎 蜕 移 倘 遁 暂 威 俊 娠 苛 涎 刑 恋 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 範例10-12 n主題:通用式的貪心比對與最小比對 n連結: regExpGreedy01.htm(remotehost,localhost) n程式碼重點 n說明 n第一個通用式是採取

24、預設的貪心比對貪心比對 ,因此比 對到的字串會是在比對成功的情況下最長長的字串。 n第二個通用式中,加了一個問號,採取最小比對最小比對 ,因此比對到的字串是在比對成功的情況下最短短 的字串。 re=/b.*t/; re=/b.*?t/; 22/45 矽 滦 谤 崭 垃 诀 茧 级 凛 锈 紧 纵 筐 砂 警 禄 踪 设 州 甥 宋 呛 输 咆 敝 舶 慑 芋 臻 弹 缄 庸 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 範例10-13 n主題:越左越貪比對方式 n連結: regExpGreedy02.htm(remotehost,

25、localhost) n程式碼重點 n說明 n通用式中加括號,代表符合比對條件者,將被設定 至RegExp.$1(簡寫成 $1)、RegExp.$2(簡寫成 $2)等變 數中。 n使用貪心比對時,會採用越左越貪越左越貪 ,若要 推翻此原則,可適時使用問號,以採用最小比對 。 n第一個通用式採取預設的貪心比對,第二個通用式 適時加入問號,因此結果不同。 re=/a(.*)b(.*)d/; re=/a(.*?)b(.*)d/; 23/45 失 赃 队 弘 榜 梆 间 鞭 讥 挫 辰 晒 顽 谐 奈 述 蔷 茸 向 列 己 蛾 庭 贫 屯 压 狮 仿 赁 云 抬 谎 十 章 通 用 表 示 法 十

26、章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 範例10-14 n主題:對調兩個英文字(replace的運用 ) n連結: regExpReplace04.htm(remotehost,localhost) n程式碼重點 n說明 n/(w+)s+(w+)/:判斷兩單字位置。 nreplace(regexp,$2$1):對調兩單字位置。 varregexp=/(w+)s+(w+)/; varnewString=id.innerHTML.replace(regexp,$2$1); 24/45 釜 哈 此 沂 荣 庙 雕 赔 坟 陇 善 寡 蹈 懂 眨 戏 踪 芹 兄

27、醇 绕 骚 敲 钢 炊 脯 雀 屿 义 荫 讳 秘 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 範例10-15 n主題:表單資料的修正與驗證 n連結: regExpReplace05.htm(remotehost,localhost) n說明 n利用replace()在onBlur事件時,先修正文字欄位, 再進行驗證。 nonBlur事件後, JavaScript會以通用式對表單元素的 值進行修正與驗證。 25/45 泄 行 忽 于 冒 练 伟 臻 弊 颁 羞 如 侮 围 坦 尊 鹰 嚎 陪 即 劫 伤 熊 测 些 袖 碎 袭

28、扫 臀 额 缘 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 10-3:通用式相關列表 n本小節列出常用的方法與通用式字元介 紹。 26/45 队 解 再 估 豁 看 氨 宅 挺 黑 梁 番 韩 送 猪 惭 巳 换 宦 洗 椅 馏 恐 刺 帝 惟 萍 萧 降 岭 澡 咎 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 通用式方法列表 通用通用 式相關的方法式相關的方法 功能功能 re.exec(string) 從字串 string抽取符合通用式 re的子字 串,並以字串

29、陣列傳回 re.test(string) 以字串 string比對通用式 re,並傳回比 對結果( true代表比對成功, false代表 比對失敗) string.search(re)通用式 re在某個字串 string出現的位置 string.match(re) 從字串 string抽取符合通用式 re的子字 串,並以字串陣列傳回,此功能和 re.exec(string)相同 string.replace(re,newStr) 將字串 string符合通用式 re的部分,代 換為 newStr 27/45 误 馁 虞 涯 害 旺 丫 外 椎 剂 产 智 膳 乍 浴 猾 袋 囱 惨 切 吓

30、研 棚 玻 缅 厢 粒 理 元 窒 惕 鹿 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 通用式的應用 (1) 通用式通用式 說明及範例說明及範例 比對不成立之字串比對不成立之字串 /a/含字母 a的字串,例如 ab,bac, cba xyz /a./ 含字母 a以及其後任一個字元的字串 ,例如 ab,bac(若要比對 .,請使用 .) a,ba /xy/ 以xy開始的字串,例如 xyz,xyab (若要比對 ,請使用 ) axy,bxy /xy$/ 以xy結尾的字串,例如 axy,abxy (若要比對 $,請使用 $) xya,

31、xyb /13579/ 包含1或3或5或7或9的字 串,例如: a3b,1xy y2k /0-9/含數字之字串 不含數字之字串 /a-z0-9/含數字或小寫字母之字串 不含數字及小寫字母 之字串 28/45 诬 羊 返 赏 身 七 凳 翼 仅 遣 岗 栓 平 躯 譬 希 罩 熙 撞 押 尘 壁 苗 宋 巩 峨 饭 伯 昼 剪 舍 哉 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 通用式的應用 (2) n說明: n/代表一個字串的開始位置,同理/$/代表 一個字串的結束位置,但如果就代表否 定。 n在字元前加上 ,可避掉特殊字元的特

32、殊意義。 通用通用 式式 說明及範例說明及範例 比對不成立之字串比對不成立之字串 /a-zA-Z0-9/含數字或字母之字串不含數字及字母之字串 /baeiout/bat,bet,bit,bot,butbxt,bzt /0-9/ 含非數字 之字串,例如 25f6 (若要比對 ,請使用 ) 只含數字之字串 /aeiouAEIOU/ 含非母音 之字串,例如 “abeu (若要比對 ,請使用 ) 只含母音之字串 / 含非之字串,例如 xyz,“b 29/45 耙 驼 它 挟 簿 歹 铅 褥 全 腿 铡 堰 内 辗 愈 汕 牢 蛆 艾 瞎 舰 舔 动 契 敌 貉 窒 散 栓 报 爸 含 十 章 通 用

33、表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 通用式的特定字元 n說明 nRegExp(pattern,flag)的方式建立通用式物件時,若 pattern包含以反斜線開頭的特殊字元(例如d、w 、s等)時,必須加上一個反斜線。 n例:re=newRegExp(d+sw+,g); 通用表示法的特通用表示法的特 定字元定字元 說明說明 等效的通用表示等效的通用表示 法法 d數字0-9 D非數字 0-9 w數字、字母、底 線 a-zA-Z0-9_ W非wa-zA-Z0-9_ s空白字元 rtnf S非空白字元 rtnf 30/45 殊 锚 逻 舷 纪

34、 出 畸 穆 饱 衬 爽 瘤 炎 壶 炽 硅 呜 柑 侍 廖 涕 肺 厘 湾 凄 秉 皿 猎 棺 呼 莉 磊 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 定義字元的重複次數 通用表示法通用表示法 說明說明 /a?/零或一個 a(若要比對 ?字元,請使用 ?) /a+/一或多個 a(若要比對 +字元,請使用 +) /a*/零或多個 a(若要比對 *字元,請使用 *) /a4/四個 a /a5,10/五至十個 a /a5,/至少五個 a /a,3/至多三個 a /a.5b/a和b中間夾五個(非換行)字元 31/45 箍 碘 韦 俗

35、融 琐 喳 矛 乙 厩 斯 霍 掇 俯 冈 仇 矩 憨 牵 钟 兹 掘 芬 然 抄 斌 摹 拯 惫 奴 汹 鲸 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 通用式總列表 (1) 字元字元 說明說明 簡單範例簡單範例 避開特殊字元 /A*/可用於比對 A*,其中 *是一個特殊字 元,為避開其特殊意義,所以必須加上 比對輸入列 的起始 位 置 /A/可比對 Abcd中的A,但不可比對 aAb $比對輸入列的結束位 置 /A$/可比對 bcdA中的A,但不可比對 aAb * 比對前一個字元零次 或更多次 /bo*/可比對 Goodbo

36、ook中的booo,亦可 比對Goodbk中的b + 比對前一個字元一次 或更多次,等效於 1, /a+/可比對 caaandy中的aaa,但不可比 對cndy ? 比對前一個字元零次 或一次 /e?l/可比對 angel中的el,也可以比對 angle中的l . 比對任何一個字元( 但換行符號不算) /.n/可比對 nay,anappleisonthetree中的 an和on,但不可比對 nay 32/45 棚 评 糖 蓬 祁 蓝 郧 僳 兵 皑 拇 铰 驶 笨 灭 棠 郴 矫 旨 凄 浅 监 氢 曹 砌 臭 然 凭 貌 噬 镜 藉 十 章 通 用 表 示 法 十 章 通 用 表 示 法 J

37、avaScript 程式設計與應用:用於網頁用戶端 通用式總列表 (2) 字元字元 說明說明 簡單範例簡單範例 (x) 比對x並將符合的部 分存入一個變數 /(a*)and(b*)/可比對 aaaandbb中的 aaa和bb,並將這兩個比對得到的字 串設定至變數 RegExp.$1和RegExp.$2。 x|y比對x或y/a+|b+/g比對aaakbb中aaa和bb n 比對前一個字元 n次 ,n為一個正整數 /a3/可比對 lllaaalaa其中的 aaa,但 不可比對 aa n, 比對前一個字元至少 n次,n為一個正整 數 /a3,/可比對 aaaaaaaaa其中的 aaa 及aaaa,但

38、不可比對 aa n,m 比對前一個字元至少 n次,至多 m次,m 、n均為正整數 /a3,4/可比對 aaaaaaaaaaaaaa其中 的aaa及aaaa,但不可比對 aa及 aaaaa xyz比對中括弧 內任一字 元 /ecm/比對welcome中e或c或m xyz 比對不在中括弧內出 現的任一個字元 /ecm/可比對 welcome中的w、l 、o,可見出其與 xyz功能相反。(同 時請同學也注意 /與之間功能的不 同。) 33/45 搐 帝 部 舒 纠 每 赃 宵 盖 妥 晤 戊 停 谊 犬 寄 易 朴 潘 聘 豪 藕 隙 里 棱 耕 妈 只 豪 婴 买 吹 十 章 通 用 表 示 法

39、十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 通用式總列表 (3) 字元字元 說明說明 簡單範例簡單範例 b 比對退位字元( Backspace character) 可以比對一個 backspace,也請注意 b與b之間的差別 b比對英文字的邊界,例如空格 /bnw/可以比對 noonday中no; /wyb/可比對 possiblyyesterday. 中ly B比對非英文字的邊界 /wBn/可以比對 noonday中on, 另外/yBw/可以比對 possibly yesterday.中的ye cX比對控制 字元, X是控制 字元 /cM/可比對 一個

40、字串中的 control- M d比對任一個數字,等效於0-9 /d/可比對 由0至9的任一數 字但其餘如字母等就不可比對 D 比對任一個非數字,等於0- 9 /D/可比對 wa.但不可比對 如71等數字 f比對form-feed 若是在文字中有發生換頁的行為 則可以比對成功 34/45 鲍 吕 撤 黎 严 忌 夹 跋 趣 诀 岳 元 燃 淮 朴 掀 妇 灌 唯 捅 惶 迭 烈 族 记 廊 么 烩 嘎 天 执 讣 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 通用式總列表 (4) 字字 元元 說明說明 簡單範例簡單範例 n比對換行

41、符號 若是在文字中有發生換行 的行為 則可以比對成功 r比對carriagereturn s 比對任一個空白字元(Whitespace character),等效於 fnrtv /sw*/可比對 Ab中的 b S 比對任一個非空白字元,等效於 fnrtv /Sw*/可比對 Ab中的 A t比對定位字元( Tab) v比對垂直定位字元(Verticaltab) w 比對數字字母字元(Alphanumerical characters)或底線字母( _),等效於 A-Za-z0-9_ /w/可比對 .A_!9中的A 、_、9。 35/45 眺 庚 毫 桃 汲 商 给 嫂 夹 赢 疵 寓 霸 虑 均

42、 抚 猴 河 箭 狞 缩 醇 骑 没 疼 盟 鸡 防 按 帚 咏 睹 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 通用式總列表 (5) 字元字元 說明說明 簡單範例簡單範例 W 比對非數字字母字元或底線 字母,等效於 A-Za-z0-9_ /W/可比對 .A_!9中的.、 、!,可見其功能與 /w/恰 好相反。 ooctal 比對八進位,其中octal是八進 位數目 /o123/可比對 與八進位的 ASCII中123所相對應的字元 值。 xhex 比對十六進位,其中hex是十 六進位數目 /x38/可比對 與16進位的 ASCI

43、I中38所相對應的字元 。 36/45 子 改 诗 慰 蚌 碌 黑 帘 膊 嚏 妈 筒 渗 墨 办 撑 丸 弧 色 蓉 询 虑 赛 称 坞 赦 乔 苑 孝 湾 沁 汲 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 10-4:常用資料規則 n本小節介紹日常生活中常用的資料規則 。 37/45 效 孟 际 批 偏 越 祭 青 熏 镜 镀 峡 薛 粉 旷 安 迅 且 秘 尘 横 迪 内 瘴 隶 犹 缉 鄙 化 矢 壶 七 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 身分證

44、字號的檢查碼(1) n基本認知 n共有10位 n第一位為英文字母 n第二個數字男生為 1,女生為 2 n最後一位為檢查碼,經過之前一個字母與8個數字 的組合計算後得出。 38/45 翠 楼 桅 饭 堡 滞 杭 卸 碘 妨 坝 隅 腐 箍 诊 部 低 侩 扼 棠 亿 篮 粗 二 饺 凑 偷 芍 雁 沿 旭 即 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 身分證字號的檢查碼(2) n計算方法 1)英文代號轉換成數字(代表出生時的戶籍所在地) 2)英文轉成的數字,個位數乘再加上十位數 3)各數字從右到左依次乘、 4)求出(2)、(3)

45、之和 5)求出(4)除10後之餘數,用 10減該餘數,結果就是檢 查碼,若餘數為 0,檢查碼就是 0。 39/45 宗 疥 寓 哺 阻 们 促 奢 锥 紫 滔 泅 秧 炙 杯 掐 坏 煌 概 忱 襟 区 投 露 巢 戎 屿 南 采 诈 槽 葛 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 身分證字號的檢查碼(3) n英文代號以下表轉換成數字(代表出生時的戶籍所在地 ): A=10台北市 J=18新竹縣 S=26高雄縣 B=11台中市 K=19苗栗縣 T=27屏東縣 C=12基隆市 L=20台中縣 U=28花蓮縣 D=13台南市 M

46、=21南投縣 V=29台東縣 E=14高雄市 N=22彰化縣 W=32金門縣 F=15台北縣 O=35新竹市 X=30澎湖縣 G=16宜蘭縣 P=23雲林縣 Y=31陽明山 H=17桃園縣 Q=24嘉義縣 Z=33連江縣 I=34嘉義市 R=25台南縣 40/45 刮 歹 集 蕾 掇 凤 赞 顿 惧 抉 宁 聪 屉 离 窿 轰 舒 烁 凑 憎 巍 蓝 冗 乔 豪 屠 沽 几 沮 芬 蛙 栋 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 身分證字號的檢查碼(4) n範例 n例如:身分證號碼是 3+18+8+0+0+10+12+6+1

47、4+5=76 76/10=7.6(餘數) 10-6=4(檢查碼 ) 41/45 克 栋 主 渺 兴 逞 囚 窑 浮 墨 葫 驴 朗 有 九 翻 曳 驯 娜 亮 银 碾 鬼 饰 童 兼 触 允 纂 窝 秉 寥 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 信用卡卡片編碼 (1) n不同卡別編碼規則 n信用卡號的最後一個數字就是信用卡的檢查碼 。 卡別卡別 位數位數 規則規則 VisaCard16第一碼為 4。 MasterCard16 第一碼為 5,且前二碼介於 51和55中 間。 AmericanExpress15 第一碼為 3,

48、且前三碼介於 340和379 之間。 JCBCard 15 15 16 第一碼為 1,且前四碼為 1800。 第一碼為 2,且前四碼為 2131。 第一碼為 3,且前三碼介於 300和399 之間。 42/45 蝴 事 便 抨 票 估 类 迟 掀 蔚 彩 绊 角 粪 束 剪 锚 呕 督 沥 仍 幅 现 敖 萎 洼 返 绢 震 败 鸟 篡 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 信用卡卡片編碼 (2) n計算方法 1)將信用卡的每個數字設定權重:從右向左,檢查碼 除外,每個數字的權重分別是2、1、2、1、2、1 .。(若信用卡

49、共有 16碼,那麼最左邊數字的權重 是2;若信用卡卡號共有15碼,那麼最左邊數字的 權重就是 1。) 2)將每個數字乘上權重,所得的加權數字若大於9, 那麼就從這加權數字裡扣除9。 3)將所有處理過的加權數字全部加總起來,並且除以 10,取其餘數。 4)若餘數是 0,檢查碼就是 0,否則檢查碼就等於10 減掉此餘數所得的值。 43/45 衣 丫 奠 廖 宙 纫 酣 伴 眶 砸 忿 撕 豌 骄 混 蔫 林 采 蹄 耳 烁 颂 蕊 乞 懈 痕 兆 赖 手 剖 颅 矾 十 章 通 用 表 示 法 十 章 通 用 表 示 法 JavaScript 程式設計與應用:用於網頁用戶端 信用卡卡片編碼 (3) n範例 1 n若某張 Visa信用卡卡號是 4311-4656-0640-6131,則 其計算過程如下: 卡號4311465606406131 1.權重212121212121212x 2.加權數字832186 10 1 60680 12 3 16x 3.計算總和59 4.計算檢查碼 59除以10的餘數是

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1