我来回答吧。经过测试的,4 个函数都具有一样的功能:<html>
<head>
<title>Test</title><script Language="VBScript">
Function adjust_sql(adj_str)
  Dim final_str, i  adj_str = Trim(adj_str)
  final_str = ""
  If Len(adj_str) > 0 Then
    For i = 1 To Len(adj_str)
      Select Case Mid(adj_str, i, 1)
          Case "[":
            final_str = final_str & "[[]"
          Case "|":
            final_str = final_str & "[{-}]"
          Case "'":
            final_str = final_str & "[&-(]"
          Case Else:  
            final_str = final_str & Mid(adj_str, i, 1)
      End Select
    Next
  End If
  adjust_sql = final_str
End FunctionFunction vbSQLFix(sql)
Dim rv rv = sql
rv = Replace(rv, "[", "[[]")
rv = Replace(rv, "|", "[{-}]")
rv = Replace(rv, "'", "[&-(]")
vbSQLFix = rv
End Function'alert adjust_sql("abc[def|ghi'")
</script>
<script language="JavaScript">
<!--
function SQLFix(str)
{
var sql; sql = str;
sql = sql.replace('[', '[[]');
sql = sql.replace('|', '[{-}]');
sql = sql.replace("'", '[&-(]');
return sql;
}function SQLCanonicalize(str)
{
var i;
var l;
var ch;
var sql; l = str.length;
sql = "";
for(i = 0; i < l; i++)
{
ch = str.charAt(i);
if(ch == '[')
sql += '[[]';
else if(ch == '|')
sql += '[{-}]';
else if(ch == "'")
sql += '[&-(]';
else
sql += ch;
}
return sql;
}function test_adjust_sql()
{
var str;
var frm; frm = document.forms[0];
str = adjust_sql(frm.input.value);
frm.result.value = str;
}function test_SQLFix()
{
var str;
var frm; frm = document.forms[0];
str = SQLFix(frm.input.value);
frm.result.value = str;
}function test_vbSQLFix()
{
var str;
var frm; frm = document.forms[0];
str = vbSQLFix(frm.input.value);
frm.result.value = str;
}function test_SQLCanonicalize()
{
var str;
var frm; frm = document.forms[0];
str = SQLCanonicalize(frm.input.value);
frm.result.value = str;
}//alert(SQLCanonicalize("abc[def|ghi'"));
//alert(SQLFix("abc[def|ghi'"));
//-->
</script>
</head><body>
<form>
<input type="text" name=input value="abc[def|ghi'jkl">
<input type="text" name=result size=40>
<input type="button" value="adjust_sql" onclick="test_adjust_sql()">
<input type="button" value="vbSQLFix" onclick="test_vbSQLFix()">
<input type="button" value="SQLFix" onclick="test_SQLFix()">
<input type="button" value="SQLCanonicalize" onclick="test_SQLCanonicalize()">
</form>
</body>
</html>

解决方案 »

  1.   

    我也来回答:大概思路如下:
    <script LANGUAGE="javascript">
    <!--
    function stringThings(stringname)
    {
    var temp="";for(i=0;i< stringname.length;i++)
    {
    switch (stringname.charAt(i))
    {case  "/": 
                 temp=temp+"\\"+"/"  ;
                 break;
    case  "-": 
                 temp=temp+"\\"+"-"  ;
                 break;
     
    default:
                temp=temp+stringname.charAt(i);
    }
    }
    return temp
    }//-->
    </script>