170 likes | 336 Views
JavaScript 處理句子的方法. 李大偉 交通大學. 課程內容. 使用 split 及 array 處理句子 學習範例 縮寫練習 每日一語. 使用 split(" ") 切割字串. split 是 JavaScript 切割字串的方法可以根據一個或一段文字,之後將切割後的小字串一一放入矩陣中 (array) var s1 = “ National Chiao-Tung University ” ; var a1 = s1.split(" "); a1[0] 的內容即為 ” National ” a1[1] 的內容即為 ” Chiao-Tung ”
E N D
JavaScript處理句子的方法 李大偉 交通大學
課程內容 • 使用split及array處理句子 • 學習範例 • 縮寫練習 • 每日一語
使用split(" ")切割字串 • split是JavaScript切割字串的方法可以根據一個或一段文字,之後將切割後的小字串一一放入矩陣中(array) • var s1 = “National Chiao-Tung University”; • var a1 = s1.split(" "); • a1[0]的內容即為”National” • a1[1]的內容即為”Chiao-Tung” • a1[2]的內容即為”University”
使用split(/[ ]/)切割字串 • split是JavaScript切割字串的方法,可以根據一組文字,之後將切割後的小字串一一放入矩陣中(array) • var s1 = “National Chiao-Tung University”; • var a1 = s1.split (/[ -]/); • a1[0]的內容即為”National” • a1[1]的內容即為”Chiao” • a1[2]的內容即為”Tung” • a1[3]的內容即為”University”
再談length方法 • length可以用來計算字串的長度 • var s1=“JavaScript”; • n1 = s1.length; n1=10 • length可以用來計算矩陣的總數 • var s1 = “National Chiao-Tung University”; • var a1 = s1.split (/[ -]/); • n1 = a1.length; n1=4
學習一:縮寫練習 • 先建立新表單如右圖,然後將此檔存於「我的文件/WWW/js-12」 • 物件名稱: • 表單為「F1」 • 第一文字方塊:「T1」 • 轉換文字按鈕:「B1」 • 第二文字方塊:「T2」
「縮寫練習」程式的想法 • 當按下「縮寫」按鈕(onClick事件發生)時 • 將F1.T1文字方塊的內容先存於s1變數中: • var s1 = F1.T1.value; • 選擇適當的文字符號當成切割的指標,然後將s1變數切割成小字串一一放入矩陣中: • var letter = s1.split(/[ -]/); • 計算letter矩陣的總數目 • var n = letter.length; • 另一新的空字串變數儲存縮寫的s1: • var as1=““; • 利用for loop正數,如0, 1, 2 …將每個letter的第一字母黏在as1之後 • 結束loop後,將as1內容全部大寫化後再置於T2文字方塊
學習二:作業成績計算器 • 在「作業成績列表 」輸入所有的作業成績,成績之間以空格分開 • 在「期中考成績 」輸入期中考成績 • 在「期末考成績 」輸入期末考成績 • 按下「計算學期總成績」之後,需以下列公式計算學期總成績: • 0.4*(作業平均成績)+0.3*(期中考成績 )+0.3*(期末考成績 )
建立第二表單 • 物件名稱: • 表單為「F2」 • 第一文字方塊:「T1」 • 「作業成績列表 」文字方塊:「T1」 • 「期中考成績 」文字方塊:「T2」 • 「期末考成績 」文字方塊:「T3」 • 「計算學期總成績」按鈕:「B1」 • 「學期總成績 」文字方塊:「T4」
「學期成績計算器」程式的想法 • 當按下「送你一句肺腑真話」按鈕(onClick事件發生)時 • 將F2.T1文字方塊的內容先存於s1變數中: • var s1 = F1.T1.value; • 然後將s1變數切割成小字串一一放入矩陣中: • var hw = s1.split(/[ ]/); • 計算 hw 矩陣的總數目 • var hwn = hw.length; • 另一新的空變數儲存作業總成績: • var hwtot=0; • 利用for loop將所有的作業成績加在一起 • 結束loop後,將作業總成績平均之。 • 學期總成績=0.4*(作業平均成績)+0.3*(期中考成績 )+0.3*(期末考成績 )
JS Homework 12-1 • 將今天的上課所做表單網頁完成並完成所有的作業,將「js-12」整個目錄上傳至WWW,並在目錄框架中為其增加新的超連結(10%) • 學習一:縮寫練習(30%) • 將一句話縮寫成每個字的第一字母,並全部大寫 • 學習二:學期成績計算器(30%) • 在「作業成績列表 」輸入所有的作業成績,成績之間以空格分開 • 在「期中考成績 」輸入期中考成績 • 在「期末考成績 」輸入期末考成績 • 按下「計算學期總成績」之後,需以下列公式計算學期總成績: • 0.4*(作業平均成績)+0.3*(期中考成績 )+0.3*(期末考成績 )
JS HW 12-2「撲克牌比大小」 • 請使用FrontPage在同一個表單做出如下圖的物件。撲克牌圖片請到下載「發撲克牌」的教材取出 • 選擇其中的一張,然按下「翻牌」後, • 首先檢查是否已經蓋牌了?如果沒有:請使用alert指令出現小視窗,內容是警告標語:「請先蓋牌」。(5%) • 然後檢查是否有按下選擇按鈕,如果沒有:請使用alert指令出現小視窗,內容是警告標語:「請先選一張牌」。(5%) • 如果已有選牌,當按下「翻牌」按鈕時 • 則隨機發兩張牌,並全部翻開牌。注意此兩牌不可重複,以紅桃系列為主(即1.gif至13.gif)。(10%) • 將牌翻開後出現小視窗告訴使用者選的牌比沒選的牌大還是小。(5%) • 當按下「蓋牌」按鈕,首先將所有的牌面歸為「0.gif」。(5%)
「撲克牌比大小」物件名稱 F3 F3.P1 F3.P2 F3.R1 F3.R2 F3.B1 F3.B2
「撲克牌比大小」的程式設計 1 • 先選牌 • 利用global variable: card = 0 • 當選按右邊牌時: card =1 • 當選按左邊牌時: card =2 • 設計「翻牌」的函式:當按下「翻牌」按鈕時 • 任意產生兩個變數 • C1:1~13的任意整數 • C2: 1~13的任意整數,但不可以等於C1 • 將C1及C2所代表的撲克牌的圖檔放在 F3.P1 及 F3.P2位置。 • 比大小:如果 card == 1 • 如果C1 > C2 alert(“選的牌比較大,贏了!”) • 如果C1 < C2 alert(“選的牌比較小,輸了!”) • 如果 card == 2 • 如果C1 > C2 alert(“選的牌比較小,輸了”) • 如果C1 < C2 alert(“選的牌比較大,贏了!”) • 如果 card =0,表示你還沒按下選擇按鈕 alert(“請先選一張牌”)
「撲克牌比大小」的程式設計 2 • 等「翻牌」的函式沒問題時,再開始寫「蓋牌」的函式 • 利用另一 global variable: cover = 0 • 當進入「翻牌」函式時,先判斷cover • 如果cover = 0代表已經蓋牌了,可以進行原來已經寫好的「翻牌」 • 否則:alert(“請先蓋牌”) • 「翻牌」函式結束前,將cover = 1代表已經翻牌過了! • 當進入「蓋牌」函式時 • 將「0.gif」的圖檔放在F3.P1及F3.P2位置。 • 將選項的選擇清除: • F3.R1.checked=false; • F3.R2.checked=false; • cover = 0代表已經蓋牌過了!
作業繳交方式 • 請在1月9日午夜十二點以前在BB系統上填入自己作業的網址 • 1月9日午夜十二點以前繳交滿分100分 • 1月9日午夜十二點以後就不需要繳交,以0分計算
var s1 = “JavaScript”; 字串的加法 A1 = “This is a” + s1; 計算字串的長度 N1 = s1.length; 將所有的字串大寫化或小寫化 A2 = s1.toUpperCase( ); A3 = s1.toLowerCase( ); charAt(N)是JavaScript取出字串中一字母的方法,如 var b1 = s1.charAt(0); substring(N1,N2)是JavaScript取出字串中一段文字的方法,但需要兩個參數。 var a1 = s1.subsring(0, 3); 搜尋字串中的字母或一段文字,如 var d1 = s1.search(“J”); var d2 = s1.search(“va”); split是JavaScript切割字串的方法可以根據一個或一段文字,之後將切割後的小字串一一放入矩陣中(array) var s1 = “National Chiao-Tung University”; var a1 = s1.split(" "); Summary:處理字串方法的指令