13.6 JS_LITERALファンクション

JS_LITERALファンクションは、JavaScript文字列のエスケープおよび(オプションで)クォートを行います。このファンクションは、影響を受ける文字を\xHHまたは\uHHHHと同等のものに置換します。結果は、<script>タグまたはインライン(「javascript:xxx」)内のJavaScriptコードに挿入できます。パラメータp_quoteがnullのとき、出力を引用符で囲まない場合に影響を受けない文字は、aからz、AからZ、0から9、カンマ(,)、ピリオド(.)、アンダースコア(_)です。p_quoteに値を指定すると、& < > " ' ` / \ %を除く出力可能なASCII 7文字がエスケープされません。

構文

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

パラメータ

表13-6 JS_LITERALファンクションのパラメータ

パラメータ 説明

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;