html中有jsp%3c%%%3e,关于JSP页面中URl传递参数中特殊字符的处理

关于JSP页面中URl传递参数中特殊字符的处理

网银转账电子回单打印中将用户交易的所有信息展示出来:

如用于回单打印的链接

οnclick="newkk1('ejnrcb.PrintContent.do?

HostJnlNo=

&PayerAcName=

&PayeeAcName=

&PayerAcNo=

&PayeeAcNo=

&Amount=

&TransDate=

&Remark=

&Fee=

&TransState=')">

若用户输入的Remark中携带特殊字符如#,&,/,等时会出现回单中显示异常的问题。

比如:#会直接出现内部错误。

解决方法:function newkk1(url)

{

//showx = event.screenX/4 ; // + deltaX;

//showy = event.screenY/4; // + deltaY;

if(url==null)

return;

url=encodeURI(url);

url=encodeURI(url);

url=replaceAll(url,”#”,”%23”);//替换#

var i=url.indexOf(“Remark=”);

var o=url.indexOf(“&Fee=”);

var remarkLeftString=url.substring(0,i);

var remakeString=url.substring(i,o);

var remarkReightString=url.substring(o,url.length);

remakeString=replaceAll(remakeString,”

remakeString=replaceAll(remakeString,”>”,”%3E”);//替换>

remakeString=replaceAll(remakeString,”"”,”%22”);//替换”

remakeString=replaceAll(remakeString,”&”,”%26”);//替换&

remakeString=replaceAll(remakeString,”/”,”%2F”);//替换/

if(remakeString.indexOf(“amp;”)!=-1){

remakeString=replaceAll(remakeString,”amp;”,”“);

}

url=remarkLeftString+remakeString+remarkReightString;

// retval = window.showModalDialog(url,window, “dialogWidth:650px; dialogHeight:400px; dialogLeft:”+showx+”px; dialogTop:”+showy+”px; status:no; directories:yes;scrollbars:no;Resizable:no;location:no;menubar:no;toolbar:no;” );

retval=window.open(url,”“, “Width=650; Height=400;” );

return retval;

}

/**

* 用于处理URL中特殊字符

字符串部分内容替换。

* oldString-原字符串

* replaceStr-被替换字符串

* newReplaceStr-新的替换字符串

*/

function replaceAll(oldString,replaceStr,newReplaceStr){

var regrex=new RegExp(replaceStr,”g”);

var newValue=oldString.replace(regrex,newReplaceStr);

return newValue;

}

以上特殊字符的替换可以整合为一个方法一起解决,但为了能清每个字符是怎样转义和还原的,所以一个一个进行替换还原,避免出错。常见的字符转义及其编码可以在网上进行搜索。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值