javascript中的replace方法不适用于变量吗?

javascript中的replace方法不适用于变量吗?,javascript,arrays,methods,replace,Javascript,Arrays,Methods,Replace,每当我使用一个实际字符时,它都会工作,但当我用一个变量(nums[2])替换它时,它就不工作了,只返回相同的数组。有什么我遗漏的吗?我会把你的代码缩短一点,这样就不会给你造成太多的混乱 另外,您可以避免使用slice方法,因为默认情况下字符串是不可变的,这意味着每次执行replace方法或任何其他字符串方法时,它都会返回一个全新的字符串 var nums = [1,2,3,5,6,3]; nums = nums.join('') // I want to replace all occurren

每当我使用一个实际字符时,它都会工作,但当我用一个变量(nums[2])替换它时,它就不工作了,只返回相同的数组。有什么我遗漏的吗?

我会把你的代码缩短一点,这样就不会给你造成太多的混乱

另外,您可以避免使用slice方法,因为默认情况下字符串是不可变的,这意味着每次执行replace方法或任何其他字符串方法时,它都会返回一个全新的字符串

var nums = [1,2,3,5,6,3];
nums = nums.join('')
// I want to replace all occurrences of 3 in nums with an empty string.

// this code works
nums.slice(0).replace(/3/g,''); => [1,2,5,6];

// this code doesn't work, because I replaced 3 with a variable
nums.slice(0).replace(/nums[2]/g, ''); => [1,2,3,5,6,3]; 
到目前为止棒极了!该方法接受RegExp或字符串作为参数。 例如:
numberstring.replace(/3/g,”)
我们使用的是
/3/g
RegExp,这意味着查找由于
g
标志而出现的所有
'3'
,因为有一个
'3'
将被替换为
repace
中第二个参数中定义的空字符串
'

但是
/numberstring[2]/g
呢?让我们来看看:

var numbersArray = [1, 2, 3, 5, 6, 3];

var numbersString = numbersArray.join(''); // => '1235653'

var numbersWithoutThrees = numbersString.replace(/3/g, ''); // => '1256'
它似乎没有替换任何东西,这是因为“123563”中没有
'numberstring[2]'
字符串

如果要替换第三个元素(numberstring[2]),可以通过在
numbersArray
中替换该位置的元素并再次使用join生成新字符串来完成

数字阵列[2]='';//=>[1, 2, "", 5, 6, 3] numberstring=numbersArray.join(“”);//=>'12563'

结果是,
numberstring
变量中没有第三个元素


我希望这有帮助

regex-literal语法不插入变量的值;它类似于字符串文本(而不是字符串模板)。regex
/nums[2]/
表示匹配字符“nums2”。这是否回答了您的问题…尽管事实上你根本不应该在这里使用正则表达式。不要将数组转换为字符串。使用
filter
忽略数组中的值。
var result = numbersString.replace(/numbersString[2]/g, ''); // => '123563'