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 に答える