我在通过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()转义单引号?
我已经尝试过“\”并尝试转义(strCallUrl),但这些似乎都没有用。
答案 0 :(得分:0)
使用escape
会有效,但您将它应用于整个网址,这也会对网址中不应编码的所有内容进行编码。
仅在值上使用它,并改为使用encodeURIComponent
method(Best practice: escape, or encodeURI / encodeURIComponent):
var strCallUrl = contextPath + "Controller?formfilter=registration&selectedUserType="+userType+"&emailID="+encodeURIComponent(advisorEmail);
alert(strCallUrl);
var objSeamlessRegLoad = new JKL.ParseXML.Text(strCallUrl,'','POST');