今天寫到一段javascript,首先要先判斷library支援哪些字元的表示,然後在input字元的地方,利用正則表示式,過濾掉不合理的輸入字串。這部分是以前我沒有寫過的,也算是滿重要的一個部分,所以我把我的實作方法列出來。
首先先附上js檔連結
https://github.com/i314i/DottyCard/blob/master/js/alphabet.js
截取一部分程式碼如下:
[code language=”javascript”]
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]]}
[/code]
上面的A78和A79代表ASCII code 78和79的文字。
因為文檔很長,所以用javascript 幫我們看出到底這個文檔裡到底支援哪些字。以下是程式碼:
[code language=”javascript”]
var word="";
for(prop in alphabet){
word+=String.fromCharCode(parseInt(prop.substr(1,2),16));
word+=" ";
}
console.log(word);
[/code]
印出到底是哪些ASCII碼後就可以用正則運算式濾掉不屬於我們要的東西。以下是程式碼:
[code language=”javascript”]
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();
}
[/code]
關於我:
我是沒一村,專長和興趣是程式、主動投資、科技商業模式。可以參考我的書單和比較熱門的文章: