程式設計雜筆

[程設雜筆] javascript物件列舉+正則表示式運用

今天寫到一段javascript,首先要先判斷library支援哪些字元的表示,然後在input字元的地方,利用正則表示式,過濾掉不合理的輸入字串。這部分是以前我沒有寫過的,也算是滿重要的一個部分,所以我把我的實作方法列出來。

首先先附上js檔連結

https://github.com/i314i/DottyCard/blob/master/js/alphabet.js

截取一部分程式碼如下:


document.alphabet={A79:{W:75,P:[[64,89,9,-102],[57,103,9,-102],[5,89,9,-79],[16,104,8,-35],[51,122,8,-35],[23,118,8,-35],[31,133,8,50],[46,136,8,50],[34,153,8,69],[28,168,7,112],[21,183,7,112]]},
A78:{W:85,P:[[10,148,8,-103],[21,137,8,-92],[33,125,7,-79],[50,124,7,-35],[58,135,7,-35],[68,148,7,-35],[40,111,7,51],[33,103,7,51],[21,86,7,51],[56,106,7,51],[67,92,7,112]]}

上面的A78和A79代表ASCII code 78和79的文字。

因為文檔很長,所以用javascript 幫我們看出到底這個文檔裡到底支援哪些字。以下是程式碼:

 


var word="";
for(prop in alphabet){
  word+=String.fromCharCode(parseInt(prop.substr(1,2),16));
  word+=" ";
}
console.log(word);


 

印出到底是哪些ASCII碼後就可以用正則運算式濾掉不屬於我們要的東西。以下是程式碼:


var inputRegStr=/[\x20-\x24\x26-\x5F\x61-\x7E]*/;
var str=$('#dotWords').val();
if(str.match(inputRegStr)[0]==str){
  console.log('xxx');
  allWords=$('#dotWords').val();
  updateWord();
}

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s