今天中午在解密一个网页木马时写的……

  主要是使用了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>