js自定義實現的簡單編碼和解碼程式碼例項
也可以說是自定義實現的加密和解密程式碼例項,當然是非常的簡單,採用比較常用的一些規則進行的相互轉換。
也是具有一定的使用價值的,有興趣的朋友可以自己做一下參考,下面就分享一下此程式碼,並對程式碼的實現做一下介紹。
程式碼例項:
[JavaScript] 純文字檢視 複製程式碼function isString(variable){ return Object.prototype.toString.call(variable).indexOf('String')!= -1; } function isNumeric(variable){ return !isNaN(parseFloat(variable)) && isFinite(variable); } function stringEncode(string){ string = isString(string) || isNumeric(string) ? String(string) : ''; var code, i = 0, code_string = '', len = string.length; while(i<string.length){ code=string.charCodeAt(i); code_string+='' + String(code).length + code; i++; } return code_string; } function stringDecode(code){ var i=0,code_len,decode_string=''; code=String(code); while(i<code.length){ code_len=+code.charAt(i); i++; decode_string+=String.fromCharCode(+code.substr(i,code_len)); i+=code_len; } return decode_string; } var str="antzone"; var encodeStr=stringEncode(str); console.log(encodeStr); console.log(stringDecode(encodeStr));
上面的程式碼實現了我們的要求,可以對指定的字串進行編碼和解碼,下面介紹一下它的實現過程。
一.程式碼註釋:
1.function isString(variable){
return Object.prototype.toString.call(variable).indexOf('String')!= -1;
}
上面的程式碼可以判斷引數是否是字串。
2.function isNumeric(variable){
return !isNaN(parseFloat(variable)) && isFinite(variable);
}
上面的程式碼可以判斷引數是否是數字。
3.function stringEncode(string){},此函式可以將自定的字串進行編碼。
4.string = isString(string) || isNumeric(string) ? String(string) : '',如果引數string是字串或者是數字,那麼就執行String(string) ,否則的話返回一個空字元。
5.var code,i = 0,code_string = '',len = string.length,宣告相應的變數。6.while(i<string.length){
code=string.charCodeAt(i);
code_string+='' + String(code).length + code;
i++;
}
while迴圈語句是實現編碼的核心所在,code=string.charCodeAt(i)指定索引位置的unicode編碼值(十進位制形式),code_string+='' + String(code).length + code將當前字元的編碼的位數和unicode碼值進行字串連線,每迴圈一次進行一次連線累加。
6.return code_string,返回編碼後的字串。
7.function stringDecode(code){},此函式實現瞭解碼功能,引數是要解碼的字串。
8.var i=0,code_len,decode_string='',宣告一系列的變數。
9.code=String(code),確保是字串,這樣的話引數也允許是數字形式。
10.while(i<code.length){
code_len=+code.charAt(i);
i++;
decode_string+=String.fromCharCode(+code.substr(i,code_len));
i+=code_len;
}此迴圈語句是解碼的核心,code_len=+code.charAt(i),從第0個開始進行遍歷,它獲取的是第一個字元的unicode碼值的長度(也就是這個碼值十進位制字串形式的長度),i++使i的值加1,code.substr(i,code_len)從i位置開始進行擷取code_len的長度,擷取的字串恰好相應字元的unicode碼值,此語句前面的加號是為了將字串轉換為數字,然後使用String.fromCharCode()轉換為響應的字元,然後進行字串連線操作。
11.i+=code_len,設定下一次開始擷取的位置。
12.return decode_string,返回解碼後的字串。
二.相關閱讀:
1.call()函式可以參閱js call()一章節。
2.indexOf()函式可以參閱javascript indexOf()一章節。
3.isNaN()函式可以參閱javascript isNaN()一章節。
4.parseFloat()函式可以參閱javascript parseFloat()方法一章節。
5.isFinite()函式可以參閱javascript isFinite()方法一章節。
6.charCodeAt()函式可以參閱javascript charCodeAt()一章節。
7.charAt()函式可以參閱javascript charAt()一章節。
8.fromCharCode()函式可以參閱javascript fromCharCode()一章節。
9.substr()函式可以參閱javascript substr()一章節。
相關文章
- js實現的字串簡單編碼和解碼程式碼例項JS字串
- jquery自定義事件簡單例項程式碼jQuery事件單例
- js自定義回撥函式簡單程式碼例項JS函式
- node.js實現的自定義事件程式碼例項Node.js事件
- js encode64編碼和解碼程式碼例項JS
- jQuery實現的簡單投票簡單程式碼例項jQuery
- javascript實現的簡單驗證碼效果程式碼例項JavaScript
- js選項卡簡單程式碼例項JS
- js簡單的留言功能程式碼例項JS
- js map集合簡單程式碼例項JS
- JSON簡單格式程式碼例項JSON
- js簡單富文字編輯器效果程式碼例項JS
- html實現簡單ListViews效果的例項程式碼HTMLView
- javascript實現的動畫效果簡單例項程式碼JavaScript動畫單例
- EasyUI實現的form表單提交簡單程式碼例項UIORM
- js簡單日曆效果程式碼例項JS
- js簡單摺紙效果程式碼例項JS
- 自定義右鍵導航選單程式碼例項
- jQuery實現的自動播放簡單程式碼例項jQuery
- canvas實現的簡單餅狀圖程式碼例項Canvas
- canvas實現的簡單塗鴉板程式碼例項Canvas
- css實現的div旋轉簡單程式碼例項CSS
- canvas實現的簡單畫板效果程式碼例項Canvas
- jQuery自定義標籤程式碼例項jQuery
- js實現jquery的extend()程式碼例項JSjQuery
- js實現的警告框例項程式碼JS
- jQuery實現的生成隨機密碼程式碼例項簡單介紹jQuery隨機密碼
- 結合例項學習|字元編碼和解碼字元
- css自定義單選按鈕的樣式程式碼例項CSS
- js prototype原型應用簡單例項程式碼JS原型單例
- js解析xml檔案簡單程式碼例項JSXML
- Angularjs製作簡單的路由功能簡單程式碼例項AngularJS路由
- jquery實現的讀取dat-*自定義資料程式碼例項jQuery
- javascript實現的圖片簡單切換程式碼例項JavaScript
- arguments.callee實現遞迴簡單程式碼例項遞迴
- nodeJS程式碼實現計算交社保程式碼例項NodeJS
- css自定義列表計數程式碼例項CSS
- js實現的冪運算程式碼例項JS