.replace() 不再为我工作

.replace() no longer working for me

本文关键字:工作 不再 replace      更新时间:2023-09-26

我已经使用以下函数一段时间了,取得了巨大的成功,但就在最近它停止工作了。我没有改变任何东西;相同的浏览器,服务器,相同的jQuery库,一切都一样,所以我迷失了方向。以下函数获取长字符串并将其转换为对象:

$(function()
{   
    var _sid    = getUrlVar('AICC_SID');
    var _url    = getUrlVar('AICC_URL');
    $.get(_url,{command:"GetParam",version:"2.2",session_id:_sid},function(response)
    {
        var _obj = toJSON(response);
        console.log(_obj);
    });
});
function toJSON(str) 
{
    var obj = {};
    str.replace(/([^=]+)=(.*)'n/g, function (_, name, value)
    {
        console.log('name : ' + name);
        console.log('value : ' + value);
        obj[name] = $.trim(value);
    });
    return obj;
}

下面是转换的字符串:

ERROR=0
ERROR_TEXT=Successful
VERSION=2.2
AICC_DATA=[CORE]
STUDENT_ID=0425655
STUDENT_NAME=Doe, John B
SCORE=
TIME=00:00:00
CREDIT=C
LESSON_LOCATION=1_5
LESSON_STATUS=NULL
[Core_Lesson]
[Objectives_Status]

问题是.replace()似乎没有运行。toJSON()函数将字符串转换为对象,但它始终返回 和 空对象。希望这能解决问题所在。

尝试从正则表达式中删除'n

所以它看起来像这样:

str.replace(/([^=]+)=(.*)/g, ...

我猜这是一个与换行符有关的问题。

更新

尝试用这个更新toJSON()

function toJSON(str) {
        var obj = {};
        str.replace(/([^=]+)=(.*)/g, function (_, name, value) {
            name = name.replace(/'n/g, '');
            console.log('name : ' + name);
            console.log('value : ' + value);
            obj[name] = $.trim(value);
        });
        return obj;
    }