JavaScript:替换数组中的字符串

时间:2015-03-02 14:12:43

标签: javascript arrays

也许我犯了一个非常愚蠢的错误,但在这里。我想将[ 'hr' ]转为[ '* * *' ]所以我这样做了:

var hr = jsonml[i]

console.log(hr)
// outputs: [ 'hr' ]
hr.replace(/hr/g, '* * *')

但是我收到了这个错误:

  

TypeError:对象hr没有方法'替换'

我做错了什么?

4 个答案:

答案 0 :(得分:3)

由于hrArray,请尝试此

hr[0] = hr[0].replace(/hr/g, '* * *');

hr = hr[0].replace(/hr/g, '* * *');

答案 1 :(得分:1)

hr是一个包含一个字符串元素的数组。我会这样做:

if (hr.length > 0)
    hr[0] = hr[0].replace(/hr/g, '* * *');

编辑: 或者

for (var i = 0; i < hr.length; i++)
    hr[i] = hr[i].replace(/hr/g, '* * *');

如果hr可能包含多个元素

答案 2 :(得分:0)

您可以看到对象的类型:

alert(typeof hr);

你会看到这个对象是一个数组!

使用它:

for (i = 0; i < hr.length; i++) {
  var result = hr[i].replace(/hr/g, '* * *');
}

答案 3 :(得分:0)

只是为了提供一个实际上OP所要求的答案(不多也不少):

hr = [hr[0].replace('hr', '* * *')];

在这种情况下替换时不需要使用正则表达式。