用Javascript中的正则表达式替换独立字符串

用Javascript中的正则表达式替换独立字符串,javascript,arrays,regex,Javascript,Arrays,Regex,我正在尝试编写一个函数来替换任何独立的匹配字符集。例如: var myarray=[“这是”,“这是iss”] var my2array=[] var regex='/bis/b' for(myarray的常数i){ 变量x=i.replace(regex,“”) my2array.push(x) } console.log(my2array)这不是解决方案,而是一个工作示例: var myarray=[“这是”,“这是iss”]; var my2array=[]; var regex=/i

我正在尝试编写一个函数来替换任何独立的匹配字符集。例如:

var myarray=[“这是”,“这是iss”]
var my2array=[]
var regex='/bis/b'
for(myarray的常数i){
变量x=i.replace(regex,“”)
my2array.push(x)
}

console.log(my2array)
这不是解决方案,而是一个工作示例:

var myarray=[“这是”,“这是iss”];
var my2array=[];
var regex=/is/g;
for(myarray中的常量i){
var x=myarray[i]。替换(regex,“”)
my2array.push(x)
}

console.log(my2array)
这不是解决方案,而是一个工作示例:

var myarray=[“这是”,“这是iss”];
var my2array=[];
var regex=/is/g;
for(myarray中的常量i){
var x=myarray[i]。替换(regex,“”)
my2array.push(x)
}

console.log(my2array)
您误解了正则表达式语法(正斜杠表示表达式的开始和结束,反斜杠与各种字符一起使用以表示某些字符集)。您可以将regex替换为以下内容,因为我认为您打算将regex的“is”实例替换为任意一方的:

var regex = /\bis\b/

您误解了正则表达式语法(正斜杠表示表达式的开始和结束,反斜杠用于各种字符以表示某些字符集)。您可以将regex替换为以下内容,因为我认为您打算将regex的“is”实例替换为任意一方的:

var regex = /\bis\b/

@benvc的答案很接近,但在替换后留下了额外的空间,因此与所需的输出不匹配

相反,您可以使用两种模式的交替,一种是处理
is
两侧都有空格的场景(在这种情况下,您可以使用正向先行模式来避免匹配最后一个空格,以允许在替换后在单词之间留有空格),另一个处理只有
一侧有空格的场景是
,或者根本没有空格:

var myarray=[“这是”、“这是iss”、“这是”、“是”]
var my2array=[]
var regex=/\s+is\s*(?=\s)|\s*\bis\b\s*/
for(myarray的常数i){
变量x=i.replace(regex,“”)
my2array.push(x)
}

console.log(my2array)
@benvc的答案很接近,但在替换后留下了额外的空间,因此与所需的输出不匹配

相反,您可以使用两种模式的交替,一种是处理
is
两侧都有空格的场景(在这种情况下,您可以使用正向先行模式来避免匹配最后一个空格,以允许在替换后在单词之间留有空格),另一个处理只有
一侧有空格的场景是
,或者根本没有空格:

var myarray=[“这是”、“这是iss”、“这是”、“是”]
var my2array=[]
var regex=/\s+is\s*(?=\s)|\s*\bis\b\s*/
for(myarray的常数i){
变量x=i.replace(regex,“”)
my2array.push(x)
}


log(my2array)
您正在迭代数组索引,而不是数组值。我的错误,已修复(已编辑)。主要问题仍然存在。您的字符串中没有一个包含
bis
,为什么希望它替换任何内容?应该是
var regex=/\bis\b/
。您键入的斜杠有误。/b是用于测试空格的正则表达式运算符,对吗?您正在迭代数组索引,而不是数组值。我的错误,已修复(已编辑)。主要问题仍然存在。您的字符串中没有一个包含
bis
,为什么希望它替换任何内容?应该是
var regex=/\bis\b/
。您键入的斜杠不正确。/b是用于测试空格的正则表达式运算符,正确?获取此信息:错误:无法读取的属性“replace”undefined@find_all这个答案是在您将
中的
更改为
之前写的。这不会产生所需的输出,因为您没有匹配单词边界。是的,这里只是给出了一个使用regex的工作示例谢谢,虽然这是我以前得到的输出,但使用不带正则表达式的replace。Barmar是正确的,因为我特别寻找要替换的独立字符串。获取:错误:无法读取的属性“replace”undefined@find_all此答案是在您将
中的
更改为
之前编写的。这不会产生所需的输出,因为您没有匹配单词边界。是的,这里只是给出了一个使用regex的工作示例,谢谢,尽管这是我之前得到的输出,使用replace而不使用regex。Barmar是正确的,因为我特别寻找要替换的独立字符串。