Javascript 如何获取位于两侧的字符/单词,我们所选的字符位于它们之间? 让我们考虑一个字符串 STR ,定义为: const str = " 'I am going' - 'I' "

Javascript 如何获取位于两侧的字符/单词,我们所选的字符位于它们之间? 让我们考虑一个字符串 STR ,定义为: const str = " 'I am going' - 'I' ",javascript,string,Javascript,String,以及一个函数calc(),该函数可用作: console.log( calc(str) ) // => am going 因此,我决定使用正则表达式制作calc()!这就是我的想法 const calc = (str) => { const reg = // Not understanding how to get the strings between which '-' falls str = str.replace(reg, function(_, a) { con

以及一个函数calc(),该函数可用作:

console.log( calc(str) ) // => am going
因此,我决定使用正则表达式制作calc()!这就是我的想法

const calc = (str) => {
 const reg = // Not understanding how to get the strings between which '-' falls
 str = str.replace(reg, function(_, a) {
   const b = remove(a[0], a[1])
   return b
 })
 return str
}

remove()是一个从字符串中删除单词的函数,我制作了。如果有任何错误,您可以自由修改我的代码。这是我想象的一个例子。所以,请帮我完成我的功能

您可以在
-
处拆分字符串,并获得
'
中的内容,使用
匹配。然后,使用构造函数创建一个动态正则表达式,并替换第一个匹配中第二个匹配的所有实例

函数计算(str){
常量[第一,第二]=str.split(/\s*-\s*/)
.map(s=>s.match(/'([^']+)'/)[1])
首先返回。替换(新的RegExp(第二个“g”),“”)
}
log(计算(“‘我要走’-‘我’”)

log(calc(“'Remove this from this string'-'this'))
您可以在
-
处拆分字符串,并在
'
中使用
匹配获得内容。然后,使用构造函数创建一个动态正则表达式,并替换第一个匹配中第二个匹配的所有实例

函数计算(str){
常量[第一,第二]=str.split(/\s*-\s*/)
.map(s=>s.match(/'([^']+)'/)[1])
首先返回。替换(新的RegExp(第二个“g”),“”)
}
log(计算(“‘我要走’-‘我’”)

console.log(calc(“'Remove this from this string'-'this'))
您希望正则表达式捕获什么?我希望我的正则表达式go给我一个数组,arr=['I'm go','I'],我有一个名为Remove()的函数,我会这样做:Remove(arr[0],arr[1])会给我'am go',所以您想删除
I
和连字符
-
?是的,我已经更新了这个问题。这不是我的家庭作业,我只是想有一个新的语法。Javascript可以添加带+的字符串,所以我想象了相反的情况,你希望正则表达式捕获什么?我希望我的正则表达式给我一个数组,arr=['I am go','I'],我有一个名为remove()的函数,我会这样做:remove(arr[0],arr[1])会给我'am go',所以你想删除
I
和连字符
-
?是的,我已经更新了这个问题。这不是我的家庭作业,我只是想有一个新的语法。Javascript可以添加带+的字符串,所以我的想法正好相反