今天中午在解密一個網頁木馬時寫的……
主要是使用了JavaScript的字串的 split 方法、數組的 reverse 和 join 方法。
<html>
<head>
<title>JavaScript編程實現字元和字串翻轉</title>
<META NAME="Author" CONTENT="PurpleEndurer">
</head>
<body>
<form name="frT">
源字串:<input type="checkbox" name="ckbRow">行間翻轉</input> <input type="checkbox" name="ckbChar">行內字元翻轉</input> <button onClick="reverseAll()">處理</button><BR>
<textarea name="taS" ROWS="12" COLS="90">
d321
c321
b321
a543
</textarea><BR>
轉換結果:<BR>
<BR><textarea name="taR" ROWS="12" COLS="90"></textarea>
</form>
<script language=javascript>
function reverseAll()
{
var s1= document.frT.taS.value;
var as1 = s1.split("/n"); //按行分成數組
if (true==document.frT.ckbRow.checked)
{
as1 = as1.reverse(); //行間翻轉
}
var s2="";
if (true==document.frT.ckbChar.checked)
{
//行內字元翻轉
var i, t, t1;
for (i=0; i < as1.length; i++)
{
t = as1[i].split('');//把字元分成數組
t1 = t.reverse();//行內字元翻轉
s2 += t1.join('');
}
/*另一種實現方法
for (i=0; i < as1.length; i++)
{
t = as1[i].split('');
t1 = t.reverse();
s2 += t1.join('');
}
*/
s2 = s2.substr(1);
}
else
{
s2 = as1.join("");
}
document.frT.taR.value = s2;
}
//行間翻轉
function reverseRows()
{
var s1= document.frT.taS.value;
var as0 = s1.split("/n"); //按行分成數組
var as1 = as0.reverse(); //數組翻轉
document.frT.taR.value = as1.join("");
}
//行內字元翻轉
function reverseChar()
{
var s1= document.frT.taS.value;
var as0 = s1.split("/n");
var s2="", i, t, t1;
for (i=0; i < as0.length; i++)
{
t = as0[i].split('');//把字元分成數組
t1 = t.reverse();
s2 += t1.join('');
}
/*另一種實現方法
var s2="", i, t, t1;
for (i=0; i < as0.length; i++)
{
t = as0[i].split('');
t1 = t.reverse();
s2 += t1.join('');
}
*/
document.frT.taR.value = s2.substr(1);
}
</script>
</body>
</html>