protected function jsMatcher($matches)
    {
        $chr = $matches[0];
        if (strlen($chr) == 1) {
            return sprintf('\\x%02X', ord($chr));
        }
        $chr = $this->convertEncoding($chr, 'UTF-16BE', 'UTF-8');
        $hex = strtoupper(bin2hex($chr));
        if (strlen($hex) <= 4) {
            return sprintf('\\u%04s', $hex);
        }
        $highSurrogate = substr($hex, 0, 4);
        $lowSurrogate = substr($hex, 4, 4);
        return sprintf('\\u%04s\\u%04s', $highSurrogate, $lowSurrogate);
    }
protected function jsMatcher($matches)
    {
        $chr = $matches[0];
        if (strlen($chr) == 1) {
            return sprintf('\\x%02X', ord($chr));
        }
        $chr = $this->convertEncoding($chr, 'UTF-16BE', 'UTF-8');
        $hex = strtoupper(bin2hex($chr));
        if (strlen($hex) <= 4) {
            return sprintf('\\u%04s', $hex);
        }
        $highSurrogate = substr($hex, 0, 4);
        $lowSurrogate = substr($hex, 4, 4);
        return sprintf('\\u%04s\\u%04s', $highSurrogate, $lowSurrogate);
    }
protected function jsMatcher ( $ matches ) { $ chr = $ matches [ 0 ] ; if ( strlen ( $ chr ) == 1 ) { return sprintf ( '\\x%02X' , ord ( $ chr ) ) ; } $ chr = $ this -> convertEncoding ( $ chr , 'UTF-16BE' , 'UTF-8' ) ; $ hex = strtoupper ( bin2hex ( $ chr ) ) ; if ( strlen ( $ hex ) <= 4 ) { return sprintf ( '\\u%04s' , $ hex ) ; } $ highSurrogate = substr ( $ hex , 0 , 4 ) ; $ lowSurrogate = substr ( $ hex , 4 , 4 ) ; return sprintf ( '\\u%04s\\u%04s' , $ highSurrogate , $ lowSurrogate ) ; }
Callback function for preg_replace_callback that applies Javascript
escaping to all matches.

@param array $matches
@return string
Callback function for preg_replace_callback that applies Javascript escaping to all matches .