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可以用來計算字串的長度 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」 「計算學期總成績」按鈕:「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 先選牌 設計「翻牌」的函式:當按下「翻牌」按鈕時 比大小:如果 card == 1 如果 card == 2 利用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分計算
Summary:處理字串方法的指令 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(" ");