javascript如何将一个字符串转换为一个对象?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript如何将一个字符串转换为一个对象?相关的知识,希望对你有一定的参考价值。
有这样一个字符串
var str='id':'id','priceBase':'1','moneyUnit':'¥';//这个字符串无法改变
现在要把这个字符串转换成一个js对象 可以通过对象名.属性名获取属性值 怎么做 用eval的话告诉我Uncaught SyntaxError: Unexpected token :
eval(x)是可以的,
如果你的意思是把这个"'id':'id','priceBase':'1','moneyUnit':'¥'"转对象的话
是eval("("+str+")")
Ps:你写的var str='id':'id','priceBase':'1','moneyUnit':'¥';这个语句,str已经是个对象了。。。追问
但无法通过str.id以及str.priceBase获取属性值 全是undefined
追答我直接赋值了你这条语句,在chrome控制台中,能正常取到值啊
我写错了 是var str="'id':'id','priceBase':'1','moneyUnit':'¥'"
追答这样写的话,就是我之前回答的方法eval("("+str+")"),这样可以转成对象
参考技术A 把文本字符串转化为对象:[javascript]
var test=' colkey: "col", colsinfo: "NameList" '
var obj2=eval("("+test+")");
alert(obj2.colsinfo);
var test=' colkey: "col", colsinfo: "NameList" '
var obj2=eval("("+test+")");
alert(obj2.colsinfo); 参考技术B var str='id':'id','priceBase':'1','moneyUnit':'¥';
console.log(str.moneyUnit);
//这是正常的代码,str 已经是一个对象 参考技术C 确定是var str='id':'id','priceBase':'1','moneyUnit':'¥'
而不是var str="'id':'id','priceBase':'1','moneyUnit':'¥'"
?追问
我写错了 是var str="'id':'id','priceBase':'1','moneyUnit':'¥'"
参考技术D 你这已经声明成对象了,还强转什么!!追问不是对象 注意属性名上面有单引号
Javascript:正确地将日期字符串转换为日期对象
我有一个日期字符串,例如'20200321082245'。我试图通过纯Javaccript代码将其转换为一个日期对象,通过分割它并创建一个日期对象为例。
'20200321082245' --> 2020-03-21 08:22:45
'202003210.2245' --> 这种带点的情况必须被排除。我必须返回一个空的日期对象
我怎么才能正确转换呢?因为syncDate也可以包含一个点,例如一个双数也不是整数。
我的代码。
function convertDate(syncDate){
var date = null;
if(syncDate){
try {
if (!isNaN(syncDate)) {
var d = syncDate.toString().match(/.{1,2}/g)
var len = d.length;
var dateString = '';
switch(len){
case 2:
dateString = d[0]+d[1];
case 3:
dateString = d[0]+d[1] +'-'+d[2]
case 4:
dateString = d[0]+d[1] +'-'+d[2]+'-'+d[3]
case 5:
dateString = d[0]+d[1] +'-'+d[2]+'-'+ d[3]+' '+d[4]
case 6:
dateString = d[0]+d[1] +'-'+d[2]+'-'+d[3]+' '+d[4]+':'+d[5];
case 7:
dateString = d[0]+d[1] +'-'+d[2]+'-'+d[3]+' '+d[4]+':'+d[5]+':'+d[6];
}
if(dateString)
date = new Date(dateString);
}
} catch (e) {}
}
return date;
}
var value = '20200321082245';
var dateRx = /(^dddd)(dd)(dd)(dd)?(dd)?(dd)?/;
if (dateRx.test(value)) {
return new Date(value.replace(dateRx, '$1-$2-$3 $4:$5:$6'));
}
return null;
你可以检查这个字符串是否包含一个 . 通过使用 包括 属性。
if(string.includes('.')){
return null;
}
关于将其转换为日期对象,有几种方法可以实现。请看这里
以上是关于javascript如何将一个字符串转换为一个对象?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Base64 字符串转换为 javascript 文件对象,如文件输入表单?
使用 jQuery 将表单数据转换为 JavaScript 对象
如何将 BigQuery Struct Schema 字符串转换为 Javascript 对象?