使用javascript和regex将原始html转换为文本
Convert raw html to text with javascript and regex
我有链接标签的原始html,我想要实现的目标是从标签和标签之间的所有文本中提取href属性,除了标签。例如:
<br>#EXTINF:-1 tvg-name="1377",Страшное HD<br>
<a title="Ссылка" rel="nofollow" href="http://4pda.ru/pages/go/?u=http%3A%2F%2F46.61.226.18%2Fhls%2FCH_C01_STRASHNOEHD%2Fbw3000000%2Fvariant.m3u8%3Fversion%3D2" target="_blank">http://46.61.226.18/hl…variant.m3u8?version=2</a>
<br>#EXTINF:-1 tvg-name="983" ,Первый канал HD<br>
<a title="Ссылка" rel="nofollow" href="http://4pda.ru/pages/go/?u=http%3A%2F%2F46.61.226.18%2Fhls%2FCH_C06_1TVHD%2Fbw3000000%2Fvariant.m3u8%3Fversion%3D2" target="_blank">http://46.61.226.18/hl…variant.m3u8?version=2</a>
必须转换为:
#EXTINF:-1 tvg-name="1377",Страшное HD
http://4pda.ru/pages/go/?u=http%3A%2F%2F46.61.226.18%2Fhls%2FCH_C01_STRASHNOEHD%2Fbw3000000%2Fvariant.m3u8%3Fversion%3D2
#EXTINF:-1 tvg-name="983" ,Первый канал HD
http://4pda.ru/pages/go/?u=http%3A%2F%2F46.61.226.18%2Fhls%2FCH_C06_1TVHD%2Fbw3000000%2Fvariant.m3u8%3Fversion%3D2
我尝试了不同的正则表达式:
这是我所做的
var source_text = $("#source").val();
var delete_start_of_link_tag = source_text.replace(/<a(.+?)href="/gi, "");
- 删除href属性的开头标签
var delete_tags = delete_start_of_link_tag.replace(/<'/?'w+(('s+'w+('s*='s*(?:".*?"|'.*?'|[^'">'s]+))?)+'s*|'s*)'/?>/gi, "");
- 删除所有标签
</a>
,<br>
- 删除所有标签
然后我想删除所有href值之后的文本到行尾
我应该在替换方法中使用什么正则表达式,或者可能在哪里有一些不同的方法来做这种转换?
设置锚标签格式
在您的示例中,您没有替换html中的">
部分。
检查这个例子
使用以下代码删除href('或")之后的所有内容
var delete_tags = delete_start_of_link_tag.replace(/".*/gi, "");
还有一些需要注意的是
1.href
中的值用单引号('
)或双引号("
)括起来,两个都是有效的。
2.匹配给定字符串或内容中所有href
的精确正则表达式是href=['"|'].*?['"|']
3.以下是我遇到的href
值的一些模式。
-
http://www.so.com
-
https://www.so.com
-
www.so.com
-
//so.com
-
/socom.html
-
javascript*
-
mailto*
-
tel*
所以如果你想要格式化URL,那么你必须考虑上述情况,我可能错过了一些。
看起来你已经在使用jQuery了。
获取每个锚的href
$('a').each(function(){
var href = $(this).attr('href');
});
获取每个锚的文本:
$('a').each(function(){
var text = $(this).text();
});
您没有在这些元素周围显示包装器元素,但是您可以获得任何选择的文本(不带标记)。
var text = $('#some_id').text();
示例- 如何使用gump任务将html转换为javascript字符串
- 将包含SVG元素的HTML转换为图像文件
- 如何在使用jsPDF将html转换为pdf的同时,在pdf中的某个点进行分页
- 如何将带有大量svg图表的html转换为pdf
- 用于将html转换为bbcode的Javascript,用于带有链接的图像
- 如何使用JavaScript将HTML转换为RTF
- 如何将HTML转换为有效的XHTML
- Javascript-将文本从html转换为字符串
- 将数据从HTML转换为Javascript(jQuery)
- 将提交按钮的HTML转换为链接HTML
- 是否可以在经过HTML转换的画布上使用getDataImage
- 将HTML转换为Sencha
- Java使用css+js将html转换为pdf
- 从一个HTML转换到另一个HTML
- JavaScript 中的 HTML 转换器问题
- 将自动生成的 html 转换为字符串
- PHP Echo 将 HTML 转换为文本
- 在jsView中使用html转换器在语法上是错误的:data-link=“html{:p roperty}”而不是dat
- 仅使用 javascript 将 HTML 转换为 PDF
- 角带 - 模态 HTML 转换不起作用