0

通过 xml 解析器转义单引号时,我遇到了一个奇怪的问题:

var strCallUrl = contextPath + "Controller?formfilter=registration&selectedUserType="+userType+"&emailID="+advisorEmail;
strCallUrl = strCallUrl.replace(/'/g, "\'");
alert(strCallUrl);
var objSeamlessRegLoad = new JKL.ParseXML.Text(strCallUrl,'','POST');

当我点击最后一行时,由于在电子邮件地址(var advisorEmail)中插入了单引号,它不会继续前进,而该变量中没有单引号,它工作得非常好。是否可以通过 JKL.ParseXML.Text() 转义单引号?

我已经尝试过“\'”并且还尝试过 escape(strCallUrl),这些似乎都不起作用。

4

1 回答 1

0

使用escape会起作用,但您将其应用于整个 URL,这也会对 URL 中不应编码的所有内容进行编码。

仅在值上使用它,并改用该encodeURIComponent方法最佳实践:转义,或 encodeURI / encodeURIComponent):

var strCallUrl = contextPath + "Controller?formfilter=registration&selectedUserType="+userType+"&emailID="+encodeURIComponent(advisorEmail);
alert(strCallUrl);
var objSeamlessRegLoad = new JKL.ParseXML.Text(strCallUrl,'','POST');
于 2013-05-14T08:00:26.163 回答