Regex.test给了我一个错误

时间:2015-12-22 13:19:37

标签: javascript json regex

我有以下javascript ...

$.post(url, data, function (json) {
        var patt = new RegExp('/^\[{"dID":/');
        if (patt.test(json)) {

            //output json results formatted
} else {

        //error so output json string
            $('#diaryTable').replaceWith(json);    

        }
    }, 'json');

基本上我的json应该是一个以

开头的有效json

[{“dID”:

或者它将是

[{ ex.Message来自try catch exception ... }]

不幸的是,我在正则表达式中收到错误 JavaScript运行时错误:预期']'

我已经检查了我的RegEx / ^ [{“dID”:/在RegEx101.com上有一些测试数据,我的测试按预期工作。任何人的想法?

1 个答案:

答案 0 :(得分:0)

好的,感谢所有试图提供帮助的人......我认为我对这个问题的解释并不太清楚......

我通过检查我是否有一个有效的对象修复了我的问题...一个有效的对象将有一个dID值,所以我用过...

 if (typeof json[0].dID != 'undefined') {
            // valid object
            var out = "";
            var i;
            var a = "N"

            for (i = 0; i < json.length; i++) {

                out += '<div class="dOuter' + a + '">';
                out += '<div class="dInner">' + json[i].dDate + '</div>';
                out += '<div class="dInner">' + json[i].dRef + '</div>';
                out += '<div class="dInner">' + json[i].dTeam + '</div>';
                out += '<div class="dInner">' + json[i].dCreatedBy + '</div>';
                out += '<div class="dType ' + json[i].dType + '">' + json[i].dType + '</div>';
                out += '<div class="dServer">' + json[i].dServer + '</div>';
                out += '<div class="dComment">' + htmlEncode(json[i].dComment) + '</div></div>';

                if (a == "N") {
                    a = "A";
                } else {
                    a = "N";
                }
            }

            $('#diaryTable').replaceWith(out);
        }

        else { 
            //error so output json string
            $('#diaryTable').replaceWith(json);    
        }