Javascript拆分(错误?)

时间:2011-08-04 15:43:28

标签: javascript regex split

我尝试在冒号处拆分字符串并检查它是否成功。 api.php给了我一个JSON。

$.ajax({
    type: "POST",
    url: "api.php",
    data: { "somedata": "123"},
    success: function (data, status, xhr) {
        if (data.indexOf("text") != -1) {
            var meinjson = $.parseJSON(data);
            for (var key in meinjson) {
                if (meinjson.hasOwnProperty(key) && key=="text") {
                    text = meinjson[key];
                    text = text.replace(/\+/g, " ");
                    text = decodeURIComponent(text);
                    if (text.indexOf(":") !== -1) {
                        text = text.split(/:(.+)?/);
                        var text1 = text[0];
                        var text2 = text[1];
                    }
                    if (text2 == undefined || text1 == undefined || text1 == void 0 || text2 == void 0 || text1=="" || text2=="") {
                        alert("fail");
                    }
                }
            }
        }
    }
});

我无法解释为什么互联网资源管理器总是落入最后但是没有firefox和chrome。 数据的一个例子是:

{"command":"SENDTEXT","text":"Lorem+Ipsum","command":"SENDTEXT","text":"Lorem+Ipsum+dolor","specialcommand":"CONNECTACCEPT"}

2 个答案:

答案 0 :(得分:1)

你错过了}。如果您在if函数中的第一个success之后缩进,则会看到哪里。

更新

您正在分享逗号,但数据中“text”的值不包含逗号。如果"text":"Lorem+Ipsum"的实际值为"Lorem+Ipsum",则不会包含"text":

答案 1 :(得分:0)

建议重构您的声明以利用错误检查。 Undefined and void 0 are essentially the same。除了空字符串,它们都是假的值。

if (!text2 || !text1 )
{
    alert("fail");
}