26.15 JS_LITERALファンクション

JS_LITERALファンクションは、JavaScript文字列をエスケープし、オプションで、引用符で囲みます。このファンクションは、影響を受ける文字を\xHHまたは\uHHHHと同等のものに置換します。結果は、<script>タグ内またはインライン(javascript:nnn)のJavaScriptコードに挿入できます。影響を受けない文字を次に示します。

  • aからz
  • AからZ
  • 0から9
  • カンマ ,
  • ピリオド.
  • アンダースコア_

出力を引用符で囲まない場合、パラメータp_quoteはNULLになります。

p_quoteに値を指定すると、& < > " ' ` / \ %を除く、出力可能なASCII 7文字がエスケープされなくなります。

構文

APEX_ESCAPE.JS_LITERAL (
    p_string IN VARCHAR2,
    p_quote  IN VARCHAR2 DEFAULT '''' )
    return VARCHAR2;

パラメータ

パラメータ 説明
p_string エスケープされるテキスト文字列。
p_quote NULL以外の場合、この文字列は結果の左および右に配置されます。引用符文字は、一重引用符または二重引用符である必要があります。

ここでは、JS_LITERALを使用して、l_string変数内の特殊文字をエスケープする方法を示します。

DECLARE
    l_string varchar2(4000) := 'O''Brien';
BEGIN
    sys.htp.p('<script>'||
        'alert('||apex_escape.js_literal(l_string)||');'||'</script>');
END;