Javascript 正则表达式不替换字符串中的斜杠

Javascript 正则表达式不替换字符串中的斜杠,javascript,regex,Javascript,Regex,我刚刚创建了一个字符串,它应该替换以#开头的单词。我成功地做到了这一点,但只要在字符串中的#之后添加斜杠,它就会替换它。这是我的密码 <script> var messageString = "The folder #/folder_name was removed from the workspace #workspace_name by #user_name" result = messageString.replace(/#(\w+)/g, function(_, $1) {

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

 <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>

var messageString=“文件夹#/folder_名称已从工作区#工作区_名称被#用户名删除”
result=messageString.replace(/#(\w+)/g,函数(_,$1){返回“HELLO”;})
警报(结果);
我的问题是,当我在#后面加一个斜杠时,为什么它不起作用,以及如何替换have/还的单词。提前感谢

您可以使用:

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

\w
是与
/
不匹配的单词字符,因此正则表达式失败<相反,code>\S将匹配任何非空格字符。

您需要将斜杠作为要匹配的有效字符的一部分,一种方法是将
[\/]
与其他字符一起使用,如下所示:

messageString.replace(/#([\/\w]+)/g,
请记住,
\w
的意思是
[a-zA-Z]

例如,
[\/\w]+
也是相等的