Javascript正则表达式忽略连字符

Javascript正则表达式忽略连字符,javascript,regex,Javascript,Regex,我需要一些关于如何构造以下正则表达式替换的帮助。我有一个名称字符串,我需要用一个加粗的代码替换其中一个名称。我的问题是,有时名字会连字符,比如琼斯·史密斯。有时连字符缺失,例如Jones Smith,因此如果字符串 NameString = "Green, Blue, Yellow, Jones-Smith, Pink" 我需要 NameString ="Green, Blue, Yellow, <b>Jones-Smith<

我需要一些关于如何构造以下正则表达式替换的帮助。我有一个名称字符串,我需要用一个加粗的代码替换其中一个名称。我的问题是,有时名字会连字符,比如琼斯·史密斯。有时连字符缺失,例如Jones Smith,因此如果字符串

     NameString = "Green, Blue, Yellow, Jones-Smith, Pink"  
我需要

   NameString ="Green, Blue, Yellow, <b>Jones-Smith</b>, Pink"
        NameString= "Green, Blue, Yellow, <b>Jones Smith</b>, Pink"
我需要

   NameString ="Green, Blue, Yellow, <b>Jones-Smith</b>, Pink"
        NameString= "Green, Blue, Yellow, <b>Jones Smith</b>, Pink"


你可能不需要正则表达式。尝试使用替换为字符串。

我不完全清楚您使用正则表达式而不是简单的
字符串的目的或原因。替换('name-to-replace')
,但您可以在正则表达式中使用垂直线字符。:

let regex = /Jones-Smith|Jones Smith/

您目前使用的是什么
replace(newregexp(thisLastName),…)
没有意义,
.replace(thisLastName,…)
在这里就可以了,那么“J.Jonah Jameson”匹配“Jo Jonah Jameson”Regex是我继承的一些代码,我想它是从谷歌搜索复制的。
let regex = /Jones-Smith|Jones Smith/