Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
手动将html文本转换为标记(javascript/nodejs)_Html_Node.js_String_Parsing_Markdown - Fatal编程技术网

手动将html文本转换为标记(javascript/nodejs)

手动将html文本转换为标记(javascript/nodejs),html,node.js,string,parsing,markdown,Html,Node.js,String,Parsing,Markdown,我有点卡住了。我已经刮了一个网站,现在想把它转换成降价。我的html如下所示: Some text more text, and more text. Some text more text, and more text. Once in a while <span class="bold">something is bold</span>. Then some more text. And <span class="bold">more bold st

我有点卡住了。我已经刮了一个网站,现在想把它转换成降价。我的html如下所示:

Some text more text, and more text. Some text more text, and more text. 
Once in a while  <span class="bold">something is bold</span>. 
Then some more text. And <span class="bold">more bold stuff</span>.
一些文本更多文本,更多文本。一些文本更多文本,更多文本。
偶尔会有大胆的事情发生。
然后是更多的文本。还有更大胆的东西。
有html标记模块可用,但是,只有当文本
看起来像这样时,它们才会工作


我如何浏览html,每次我找到一个应该加粗的
span
,将这段html转换成加粗标记,也就是说,使它看起来像这样**

记事本++是一个支持正则表达式的开源编辑器。这张图显示了基本思想


您知道如何使用编辑器查找和替换字符串。在记事本++这样的编辑器中,您可以查找字符串模式,替换部分模式并保留剩下的内容。在本例中,您希望查找由HTML标记构成框架的字符串。此处“查找内容”编辑框中的正则表达式显示,带有特殊符号
([^Notepad++是一个支持正则表达式的开源编辑器。此图显示了基本思想

您知道如何使用编辑器查找和替换字符串。在记事本++之类的编辑器中,您可以查找字符串模式并替换部分模式并保留剩余内容。在您的情况下,您希望查找由HTML标记构成框架的字符串。此处“查找内容”编辑框中的正则表达式显示了这些内容,并带有特殊的符号n
([^试试这个,一个用JavaScript编写的HTML到标记转换器

它可以通过将转换器数组传递到选项对象来扩展:

toMarkdown(stringOfHTML, { converters: [converter1, converter2, …] });
在您的情况下,转换器可以

{
    filter: 'span',
    replacement: function(content) {
       return '**' + content + '**';
   }
}
有关更多详细信息,请参阅其自述文件。

试试这个,它是一个用JavaScript编写的HTML到标记转换器

它可以通过将转换器数组传递到选项对象来扩展:

toMarkdown(stringOfHTML, { converters: [converter1, converter2, …] });
在您的情况下,转换器可以

{
    filter: 'span',
    replacement: function(content) {
       return '**' + content + '**';
   }
}


有关更多详细信息,请参阅其自述。

您可以使用正则表达式来替换字符串吗?我不确定这将如何工作。您基本上可以替换所有的span标记并将其设置为粗体标记,然后转换为markdown您可以使用正则表达式来替换字符串吗?我不确定这将如何工作。您基本上可以替换所有的span标记并使其生效bold标记,然后转换为markdownhey,这太神奇了!我刚刚尝试过,效果非常好。有没有办法指定它不仅应该是
span
,而且应该是类为
bold
?@geogener过滤器可以是一个返回布尔值的函数,这取决于是否应该替换给定节点函数被传递一个DOM节点作为它的唯一参数。在您的例子中,筛选器可以是
函数(节点){return node.nodeName=='SPAN'&&&/bold/i.test(node.className);}
这太神奇了。我如何了解这一点,或者深入了解这一点?这到底叫什么?我一点都不懂,但它是有效的:)@GeorgeWeaver你可以在github上阅读模块的自述文件,我从那里学到了它,你也可以阅读它的源代码,这并不难理解。@GeorgeWeaver要理解它,你需要一些HTML方面的知识。DOMhey,这太神奇了!我刚刚尝试过,效果非常好。我有没有办法指定它不仅应该e一个
span
,但是一个span类为
bold
?@geogener该过滤器可以是一个返回布尔值的函数,具体取决于是否应替换给定节点。该函数被传递一个DOM节点作为其唯一参数。在您的情况下,过滤器可以是
函数(节点){return node.nodeName=='span'&/bold/i.test(node.className);}
这真是太棒了。我该如何学习这一点,或者深入研究这一点?这到底叫什么?我一点都不懂,但它是有效的:)@你可以在github上阅读模块的自述文件,我从那里学到的,你也可以阅读它的源代码,这并不难理解。@GeorgeWemmer要理解它,你需要一些HTML知识。多米非常欣赏没有说明答案有什么问题的点击和点击投票。我非常欣赏点击和点击投票没有说明答案有什么问题的否决票。