Regex未替换字符串中的斜杠

Regex not replacing slash in string

本文关键字:字符串 替换 Regex      更新时间:2023-12-06

我刚刚创建了一个字符串,它应该替换以#开头的单词。我成功地做到了这一点,但一旦我在字符串中的#后面添加斜杠,它就会替换它。这是我的代码

 <script>
var messageString = "The folder #/folder_name was removed from the workspace #workspace_name by #user_name"
result = messageString.replace(/#('w+)/g, function(_, $1) { return " HELLO"; })
alert(result );
</script>

我的问题是,当我在#后面添加斜杠时,为什么它不起作用,以及如何替换有/的单词。提前感谢

您需要将斜杠作为要匹配的有效字符的一部分,一种方法是将['/]与其他字符一起使用,看起来像:

messageString.replace(/#(['/'w]+)/g,

请记住,'w表示[a-zA-Z_]

例如,['/'w]+等于['/a-zA-Z_]

您可以使用:

result = messageString.replace(/#('S+)/g, function(_, $1) { return " HELLO"; })

'w是一个与/不匹配的单词字符,因此正则表达式失败。'S将与任何非空格字符相匹配。