javascript實(shí)現(xiàn)的字符串與十六進(jìn)制表示字符串相互轉(zhuǎn)換方法
本文實(shí)例講述了javascript實(shí)現(xiàn)的字符串與十六進(jìn)制表示字符串相互轉(zhuǎn)換方法。分享給大家供大家參考。具體如下:
之所以寫(xiě)這個(gè),是因?yàn)榘l(fā)現(xiàn)SQL注入和XSS中經(jīng)常利用十六進(jìn)制表示的字符串,比如
SELECT CONCAT(0x68656c6c6f);
得到的是hello
<!DOCTYPE html>
<html>
<head>
<title>Hex-Char Bi-Converter</title>
</head>
<body>
<div class="mainContainer">
<label for="from" id="fromLabel">String</label>
<input type="text" name="from" id="from" />
<input type="button" name="exchange" id="exchange" value="<=>" />
<label for="to" id="toLabel">Hex</label>
<input type="text" name="to" id="to" />
<input type="button" name="convert" id="convert" value="Convert" />
</div>
<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
var curMode = 0; // curMode: 0 represents String to Hex, 1 from Hex to String
var fromToLabelArray = ["Hex", "String"];
$(function() {
$("#convert").click(function() {
var fromVal = $("#from").val();
var toVal =
curMode === 0
?
strToHexCharCode(fromVal)
:
hexCharCodeToStr(fromVal);
$("#to").val(toVal);
});
$("#exchange").click(function() {
$("#fromLabel").text(fromToLabelArray[curMode]);
$("#toLabel").text(fromToLabelArray[1-curMode]);
curMode = 1 - curMode;
});
});
function strToHexCharCode(str) {
if(str === "")
return "";
var hexCharCode = [];
hexCharCode.push("0x");
for(var i = 0; i < str.length; i++) {
hexCharCode.push((str.charCodeAt(i)).toString(16));
}
return hexCharCode.join("");
}
function hexCharCodeToStr(hexCharCodeStr) {
var trimedStr = hexCharCodeStr.trim();
var rawStr =
trimedStr.substr(0,2).toLowerCase() === "0x"
?
trimedStr.substr(2)
:
trimedStr;
var len = rawStr.length;
if(len % 2 !== 0) {
alert("Illegal Format ASCII Code!");
return "";
}
var curCharCode;
var resultStr = [];
for(var i = 0; i < len;i = i + 2) {
curCharCode = parseInt(rawStr.substr(i, 2), 16); // ASCII Code Value
resultStr.push(String.fromCharCode(curCharCode));
}
return resultStr.join("");
}
</script>
</body>
</html>
希望本文所述對(duì)大家的javascript程序設(shè)計(jì)有所幫助。
- JS中字符問(wèn)題(二進(jìn)制/十進(jìn)制/十六進(jìn)制及ASCII碼之間的轉(zhuǎn)換)
- 使用JavaScript進(jìn)行進(jìn)制轉(zhuǎn)換將字符串轉(zhuǎn)換為十進(jìn)制
- JS中的進(jìn)制轉(zhuǎn)換以及作用
- 用js實(shí)現(xiàn)的十進(jìn)制的顏色值轉(zhuǎn)換成十六進(jìn)制的代碼
- javascript簡(jiǎn)單進(jìn)制轉(zhuǎn)換實(shí)現(xiàn)方法
- JavaScript進(jìn)制轉(zhuǎn)換實(shí)現(xiàn)方法解析
- javascript中簡(jiǎn)單的進(jìn)制轉(zhuǎn)換代碼實(shí)例
- javascript實(shí)現(xiàn)二進(jìn)制、十進(jìn)制、十六進(jìn)制和八進(jìn)制之間相互轉(zhuǎn)換的方法
相關(guān)文章
微信小程序?qū)W習(xí)筆記之表單提交與PHP后臺(tái)數(shù)據(jù)交互處理圖文詳解
這篇文章主要介紹了微信小程序?qū)W習(xí)筆記之表單提交與PHP后臺(tái)數(shù)據(jù)交互處理,結(jié)合實(shí)例形式詳細(xì)分析了微信小程序前臺(tái)數(shù)據(jù)form表單提交及后臺(tái)使用php進(jìn)行處理相關(guān)操作技巧,并配以圖文形式詳細(xì)說(shuō)明,需要的朋友可以參考下2019-03-03
詳解原生JavaScript實(shí)現(xiàn)jQuery中AJAX處理的方法
這篇文章主要介紹了原生JavaScript實(shí)現(xiàn)jQuery中AJAX處理的方法,作者根據(jù)jQuery中一些對(duì)AJAX請(qǐng)求的處理方式來(lái)用原生API實(shí)現(xiàn),需要的朋友可以參考下2016-05-05
js window.open彈出新的網(wǎng)頁(yè)窗口
彈出新的網(wǎng)頁(yè)窗口的方法有很多,在本文為大家介紹下使用js的window.open方法來(lái)實(shí)現(xiàn),需要的朋友可以了解下2014-01-01
uni?app跨端自定義指令實(shí)現(xiàn)按鈕權(quán)限
這篇文章主要為大家介紹了uni?app跨端自定義指令實(shí)現(xiàn)按鈕權(quán)限詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
BootStrap注意事項(xiàng)小結(jié)(五)表單
這篇文章主要介紹了BootStrap注意事項(xiàng)小結(jié)(五)表單的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,,需要的朋友可以參考下2017-03-03
js實(shí)現(xiàn)的tab標(biāo)簽切換效果代碼分享
這篇文章主要介紹了js實(shí)現(xiàn)的tab標(biāo)簽切換效果,功能實(shí)現(xiàn)非常簡(jiǎn)單,推薦給大家,有需要的小伙伴可以參考下。2015-08-08

