如何将Nativescript接口返回的带双引号的日期字符串转为JS数组
解决方案
你可以通过两种无执行风险的方式完成转换,具体实现如下:
方案1:纯字符串分割处理(推荐,性能高容错性强)
直接对返回字符串做字符清理后拆分:
// 假设你调用Http.getString拿到的返回值为responseStr const responseStr = "\"'31/08/2021','24/12/2021','25/12/2021','26/12/2021','27/12/2021','28/12/2021','29/12/2021','30/12/2021','31/12/2021','01/01/2022','01/04/2022','04/04/2022'\""; const dateArray = responseStr .replace(/^"|"$/g, '') // 移除字符串首尾的双引号 .replace(/'/g, '') // 移除所有包裹日期的单引号 .split(','); // 按逗号分割为数组
执行后dateArray就是你需要的目标数组格式。
方案2:JSON格式转换
调整字符串为标准JSON数组格式后直接解析:
const responseStr = "\"'31/08/2021','24/12/2021','25/12/2021','26/12/2021','27/12/2021','28/12/2021','29/12/2021','30/12/2021','31/12/2021','01/01/2022','01/04/2022','04/04/2022'\""; const dateArray = JSON.parse( '[' + responseStr.replace(/^"|"$/g, '').replace(/'/g, '"') + ']' );
如果后续需要将日期字符串转为标准Date对象,可以追加遍历处理逻辑:
const formalDateList = dateArray.map(dateStr => { const [day, month, year] = dateStr.split('/'); return new Date(year, Number(month) - 1, day); });
内容的提问来源于stack exchange,提问作者Frank Nicklin
相关产品推荐
相关产品推荐

