バグではなくて、仕様なのかもしれませんが。。。hsp3.5 beta2 にて確認。
バグではなくて、仕様なのかもしれませんが。。。hsp3.5 beta2 にて確認。
#module _Mod_HTML_ // 指定された文字列のHTMLエスケープを行います #defcfunc escapeHtml str html, \ local tmp ; tmp = html strrep tmp, "&", "&" strrep tmp, "<", "<" strrep tmp, ">", ">" strrep tmp, "'", "'" strrep tmp, "\"", """ ; logmes tmp return tmp #global ; strHtml = "<b>$A$</b>" strIns = "こんにちは><" ; ; 予想: <b>$A$</b> ; 結果: <b>$A$</b> mes "☆1: " + strHtml ; ; ※ 単体では正常動作します。 ; 予想: こんにちは>< ; 結果: こんにちは>< mes "☆2: " + escapeHtml(strIns) ; ; ※ strrepを入れ子にすると予想と違う結果に… ; $A$ という文字列を探して、エスケープ済みの文字列に置き換えます。 ; 予想: <b>こんにちは><</b> ; 結果: こんにちは>< strrep strHtml, "$A$", escapeHtml(strIns) mes "☆3: " + strHtml ; ; ※ 入れ子にしなければ、予想通りの動きをする。 ; 予想: <b>こんにちは><</b> ; 結果: <b>こんにちは><</b> strHtml = "<b>$A$</b>" tmp = escapeHtml(strIns) strrep strHtml, "$A$", tmp mes "☆4: " + strHtml