javascript - 如何使用正则表达式和变异元音获取字符串的所有匹配项 - 标签

标签 javascript regex web unicode

我正在寻找一种方法来用其他内容替换所有这些主题标签:

#foo #foo #foo

目前我使用此代码:

msg = msg.replace(new RegExp('(^|\\s)#' + searchString + '(\\s|$)', 'gi'), $1 + 'bar' + $2");

只要相同主题标签只有两次,此解决方案就有效,但一旦达到三个或更多,它就会失败。

据我所知,一个简单的方法是不可能的,因为我需要支持变异元音(unicode),并且我必须立即替换所有出现的情况。

所以我正在寻找一个可以处理两次以上相同主题标签的正则表达式。

最佳答案

您可以使用此正则表达式与前瞻来解决此问题:

msg = msg.replace(new RegExp('#' + searchString + '(?=\\s|$)', 'gi'), '#bar');

RegEx Demo

您的正则表达式在匹配字符串后也会消耗空间,不会为下一次出现的匹配留下任何空间。

更新:如果您确实想在#之前匹配可选空格,那么您可以使用:

msg = msg.replace(new RegExp('(^|\\s)#' + searchString + '(?=\\s|$)', 'gi'), "$1" + 'bar');

关于javascript - 如何使用正则表达式和变异元音获取字符串的所有匹配项 - 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27843494/

相关文章:

javascript - 向其中包含数组的深层嵌套对象添加值

javascript - 更改 AJAX 请求输入值的格式

javascript - Javascript中的自定义方法实现模式

regex - 正则表达式可以返回找到匹配项的行号吗?

php - 从 IOS 到 php 服务的 Base64 图像

javascript - 如何在 .html 中使用 JavaScript 函数

javascript - 这 ?匹配器与模式|空的

regex - Hbase RegexStringComparator筛选器提供的行比预期的多

javascript - 是否可以制作无框架的 PWA?

java - 如何用Java以编程方式访问网站?