Javascript 在一组字符串中重新放置一个字符串-regex

Javascript 在一组字符串中重新放置一个字符串-regex,javascript,regex,Javascript,Regex,请问如何使用regex(JS)替换下面这样的长字符串中的字符串 我的字符串可以是以下字符串之一: str = "this may have bgskin-akb4c hello how"; or str = "have bgskin-a2b3c hello"; or str = "bgskin-xyz2 hello"; or str = "bgskin-bbc"; 在上面的字符串中,我想用一个新的字符串值替换以“bgskin”开头的单词(例如:-akb4c,-xyz2)的第二部分,例如:“

请问如何使用regex(JS)替换下面这样的长字符串中的字符串

我的字符串可以是以下字符串之一:


str = "this may have bgskin-akb4c hello how";
or
str = "have bgskin-a2b3c hello";
or
str = "bgskin-xyz2 hello";
or 
str = "bgskin-bbc";
在上面的字符串中,我想用一个新的字符串值替换以“bgskin”开头的单词(例如:-akb4c,-xyz2)的第二部分,例如:“have bgskin-a2b3c hello”变为“have bgskin newstr hello”

谢谢你在这方面的帮助

非常感谢,,
L

在Perl中,假设始终希望替换字符串相同:
s/bgskin-\w+/bgskin newstr/g
在Perl中,假设始终希望替换字符串相同:
s/bgskin-\w+/bgskin newstr/g
在Javascript中

str.replace(/bgskin-\w+/g, 'bgskin-newstr');
在Javascript中

str.replace(/bgskin-\w+/g, 'bgskin-newstr');

我的正则表达式模式末尾的
gi
标志告诉它进行全局搜索,不区分大小写

var pattern = /bgskin-[a-z0-9]+/gi;
str.replace(pattern, "bgskin-newstr");
查看它在JSFIDLE上的工作:

我的正则表达式模式末尾的
gi
标志告诉它进行全局搜索,不区分大小写

var pattern = /bgskin-[a-z0-9]+/gi;
str.replace(pattern, "bgskin-newstr");
查看它在JSFIDLE上的工作:

尽管问题中没有明确说明,但您的代码只会替换第一个出现的模式。您需要将全局标志添加到模式中。谢谢a ton=>eduardocereto:)这对我的情况来说是一个魅力!我按照@jessegaving的建议添加了全局标志,尽管问题中没有明确说明,您的代码只会替换模式中第一个出现的。您需要将全局标志添加到模式中。谢谢a ton=>eduardocereto:)这对我的情况来说是一个魅力!我按照@jessegavin的建议添加了全球标志