【问题标题】:How to replace all \n\t\n\ of a string in Javascript [duplicate]如何替换Javascript中字符串的所有\n\t\n\ [重复]
【发布时间】:2020-01-15 01:41:16
【问题描述】:

我正在使用cheerio 进行一些简单的抓取。

我想从网站上抓取内容。我想用 HTML 格式抓取它,所以我在cheerio 中使用.html()

const content = item.find(`div.message`).html()

结果是一个 HTML 源代码

\n\t\t\t\n\t\t\tmua về độ lại xinhan khóa thông minh đèn thấy ok mà <img src=\"/images/smilies/Off/boss.gif\" border=\"0\" alt title=\"Boss\" class=\"inlineimg\">\n\t\t

我想删除所有的\n\t\n\n\t。我使用的正则表达式是

(\\t\\n|\\n|\\t)

我在 regex101 网站上工作得很好。它匹配字符串中的所有\n\t\n。但是当我在Javascript中使用replace方法时,它不起作用。

const content = item.find(`div.message`).html().replace(/(\\t\\n|\\n|\\t)/, "")

结果还是与\n\t\n\n\t相同的字符串。

我需要在代码中更改什么?

更新了更多代码

我创建一个新文件来测试

const string =
  '\n\t\t\t<!-- BEGIN TEMPLATE: ad_showthread_firstpost_start -->\n\n<!-- END TEMPLATE: ad_showthread_firstpost_start -->\n\t\t\ttính tết này súc em winner x , máy thím cho em ý kiến với <img src="/images/smilies/Off/pudency.gif" border="0" alt title="Pudency" class="inlineimg">\n\t\t';

console.log(string.replace(/(\\t\\n|\\n|\\t)/, ""));

结果是一样的

【问题讨论】:

  • 为什么不保持正则表达式简单:content.replace(/[\\t\\n]/g, '')。另外,"/(\\t\\n|\\n|\\t)/" 这是一个字符串。删除引号使其成为正则表达式对象
  • @Rajesh 是的,但仍然得到相同的结果。它不会删除 \n\t\n\n...
  • 使用这个:a.replace(/\t|\n/g, '');
  • @ATULKUMARSINGH 它现在仍然可以工作:(
  • 我在浏览器中执行了该代码,它对我有用。

标签: javascript node.js


【解决方案1】:

保持简单:

.replace(/[\\n\\t]/g, '')

【讨论】:

  • 这将替换新行和制表符,而不是后跟 n 和 t 的反斜杠
  • 然后保留双反斜杠。已编辑
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-11
  • 1970-01-01
  • 2013-02-20
  • 1970-01-01
  • 1970-01-01
  • 2012-12-13
  • 2015-07-07
相关资源
最近更新 更多