.replace() 不再为我工作
.replace() no longer working for me
我已经使用以下函数一段时间了,取得了巨大的成功,但就在最近它停止工作了。我没有改变任何东西;相同的浏览器,服务器,相同的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;
}
相关文章:
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 当我更改innerHtml时,引导选项卡事件不再工作
- 天气应用 API 不再工作
- AngularJS Dropdown在使用指令后不再工作
- 虚拟键盘在更新到 Chrome v50 后不再工作
- $(这个)没有't在onClick事件中不再工作
- 当控制台不在't在chrome中打开,有些项目不再可点击(有些js调用停止工作)
- 升级至Knockout 3.0.0,Templates/Custom Binding Handlers不再工作
- 自定义绑定在KnockoutJS 3.0中不再工作
- 为什么不是'我的jQuery不再工作了
- .replace() 不再为我工作
- 为什么 ngClick 在$compile后不再工作
- AngularJs 路由不再工作.地址栏更改,但视图不会更改
- yam.platform.setAuthToken在IE 8和IE 9中不再工作
- 节点.js版本已更改,脚本不再工作
- 是 ngAnimate 不再工作了
- .click() 不再工作 jquery.
- JS点击功能不再工作以更改链接颜色
- 谷歌地图API不再工作
- 事件处理程序在 html 重新呈现后不再工作