javascript - 将 Whatsapp 降价转换为 HTML 标签
问题描述
我需要将 Whatsapp markdown 转换为 HTML 标签。
例如。
*Bold* to <b>Bold</b>
_Italic_ to <i>Italic</i>
我想使用正则表达式来捕获字符串中的单词。
这是包含测试用例的链接,以及我最好的尝试。 https://regexr.com/4gnqr
正则表达式应该同时捕获*bold*
和*some more bold text*
。
解决方案
你可以使用一个简单的正则表达式:
const regex = /\*(.*?)\*/g;
const test = "*bold*, not bold, *bold again*";
// ^1 ^2 ^3 ^4
const result = test.replace(regex , '<strong>$1</strong>')
console.log(result)
- 你想要从
*
到下一个*
并保存两者之间*(.*?)*
的所有内容:(没有?
它会从头到尾(例如 1->4 而不是 1->2、3->4),它被称为(非)贪婪)。 - 这不起作用,因为
*
它是一个正则表达式字符,所以你必须转义 ->\*
。 - 表示“
/g
全局”,例如替换所有出现(而不是仅第一次出现)。 $1
保存我们的第一个(并且仅在这种情况下)值。
下划线版本的工作方式相同,并且不需要像*
这样转义。
推荐阅读
- debugging - How to enable "step into" in debugger of intellij idea?
- sql - Compering number to a current month in MS Access
- django - Django REST Framework: I want to resolve n+1 in SerializerMethodField
- python - Reformatting DataFrame and Stripping DataFrame of 'Nan' in Python (pandas)
- linux - How to link mach-o format object files on linux?
- nginx - Nginx reverse proxy to CDN with automatically finds the right image size by configured array
- spring - Rollback is not working in @Transactional annotated service. Spring + Hibernate
- amazon-web-services - Clone Hard Drive and upload/use in Azure, AWS or Google Cloud
- javascript - How to mock ajax call in jamine?
- php - wordpress 子主题不会自动从父主题加载 single-post_type.php