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]+
也是相等的