截取二进制流的步骤

截取二进制流的方法
我有以下一个函数,程序可以走到req.request的成功回调那里,我把需求写在那里了。


    function getCgiPicture(url) {
     var outPut = document.getElementById("output");

        var req = new digestAuthRequest('GET', url, 'admin', 'admin');

        req.request(function(data) {
            // success callback

            //下面两行是我要做的功课,data是一个流,流里边包括jpg图片的流
            //了解了一下jpg的编码格式,是以0xFFD8开始,以0xFFD9结束
            //所以我需要把data这个流,做一个截取,取里边0xFFD8~0xFFD9之间的内容,最后再做BASE64
            var img =           ;
            outPut.innerHTML = "<img src='data:image/jpg;base64," + Base64.encode(img) + "' />";
        },function(errorCode) {
            // error callback
        });


请问,怎么样截取data中间流,它是二进制的,不是字符串。
------解决思路----------------------
一种是用substr 来截取中间部分
 var asd123 = '0xFFD8****0xFFD9';
 var ss = asd123.substr(6,  asd123.lastIndexOf("0xFFD9")-6); //0xFFD8是6位  0xFFD9是6位,
二种是利用正则表达式来取
大体/0xFFD8[^<>]*?0xFFD9/gi;这样。我写的不对。
------解决思路----------------------

function getCgiPicture(url) {
        var outPut = document.getElementById("output");
 
        var req = new digestAuthRequest('GET', url, 'admin', 'admin');
 
        req.request(function(data) {
            // success callback
 
            //下面两行是我要做的功课,data是一个流,流里边包括jpg图片的流
            //了解了一下jpg的编码格式,是以0xFFD8开始,以0xFFD9结束
            //所以我需要把data这个流,做一个截取,取里边0xFFD8~0xFFD9之间的内容,最后再做BASE64
            var img =  match(/0xFFD8(.*)0xFFD9/)[1];
            outPut.innerHTML = "<img src='data:image/jpg;base64," + Base64.encode(img) + "' />";
        },function(errorCode) {
            // error callback
        });