如何从正文中删除特定元素?

时间:2019-06-08 01:58:12

标签: javascript node.js ejs

我正在研究后端开发(作为UI设计师),并想通过使用cheerio,请求和表达来实践我所学到的知识,以便刮擦占星术网站的一段文字。从此站点,我将选定的数据拉到服务器,然后将其传递给客户端-成功。我遇到的问题是,在占星术网站上,“日期”和“占星术读物”位于同一段落标签中,我无法将它们分开。看起来像这样:

2019年6月7日:今天是体验新事物的好日子-它们既像新的谷物早餐一样像行人一样[...]

我本来考虑使用replace方法,但是一直转向substring方法。我的想法是,我可以将起始值设置为12,在这种情况下,它将占日期中最少的字符。然后,我可以替换读数的第一个字符之前的所有空格(在本例中为“今天”)。问题是,如果当天有两位数字,则冒着从读数中删除第一个字符的风险。

这是我必须使用的逻辑,还是可以使用一种更简单的方法?

2 个答案:

答案 0 :(得分:1)

您可以简单地按前:来拆分值

let str = `Jun 7, 2019: Today is a great day to experience new things—they should be both as pedestrian as a new breakfast cereal [...]`
let str2 = `Jun 17, 2019: Today is a great day to experience new things—they should be both as pedestrian as a new breakfast cereal [...]`

let dateAndInfo = (str) =>{
  return str.split(/(^[^:]+):/).filter(Boolean).map(e=>e.trim())
}

console.log(dateAndInfo(str))
console.log(dateAndInfo(str2))

答案 1 :(得分:0)

将substr方法与indexOf方法结合使用,该方法将找到第一个“:”字符的索引。从“:”的位置开始,然后提取字符串的其余部分。

finalStr = str2.substr(str2.indexOf(":") + 1)
//returns everything after the ":" at the end of the date string.