从一个元素获取文本,在另一个元素中显示

时间:2018-05-04 15:46:13

标签: regex string substr

我试图从一个文本块中获取一个特定的片段并将其显示在一个新的子元素中。我面临的挑战是,月/日是动态的。我只需要获得月/日/年。但是,我需要使用这种格式显示它" 2018年5月4日"。

以下是我所指的文字:

  

在下午6:00(当地酒店时间)之前取消预订   2018年6月11日星期一将免费。

我还没有使用regexp或字符串,所以我不知道从哪里开始。也就是说,这是我开始使用的一些代码。执行时,我收到未捕获的ReferenceError:未定义区域设置

var cancelPolicyText = "Canceling your reservation before 6:00 PM (local hotel time) on Monday, 11 June, 2018 will result in no charge. ";
var cpRegex =  / on (.*) will/;
var cpDateString = cpRegex.exec(cancelPolicyText)[1];
var cpDate = new Date(cpDateString);
var month = cpDate.toLocaleString(locale, { month: "long" });
var newFormatDate = cpDate.getDate() + " " + month + ", " + cpDate.getFullYear();
newFormatDate

感谢任何帮助/指导。

  • Brion的

1 个答案:

答案 0 :(得分:0)

locale未定义,因此更改:

var month = cpDate.toLocaleString(locale, { month: "long" });

验证语言环境(例如en-GB):

var month = cpDate.toLocaleString('en-GB', { month: "long" });

要获得您要查找的格式,请更改:

var newFormatDate = cpDate.getDate() + " " + month + ", " + cpDate.getFullYear();

致:

var newFormatDate = month + " " + cpDate.getDate() + ", " + cpDate.getFullYear();

结果:

var cancelPolicyText = "Canceling your reservation before 6:00 PM (local hotel time) on Monday, 11 June, 2018 will result in no charge. ";
var cpRegex =  / on (.*) will/;
var cpDateString = cpRegex.exec(cancelPolicyText)[1];
var cpDate = new Date(cpDateString);
var month = cpDate.toLocaleString('en-GB', { month: "long" });
var newFormatDate = month + " " + cpDate.getDate() + ", " + cpDate.getFullYear();
console.log(newFormatDate);