也许我犯了一个非常愚蠢的错误,但在这里。我想将[ 'hr' ]
转为[ '* * *' ]
所以我这样做了:
var hr = jsonml[i]
console.log(hr)
// outputs: [ 'hr' ]
hr.replace(/hr/g, '* * *')
但是我收到了这个错误:
TypeError:对象hr没有方法'替换'
我做错了什么?
答案 0 :(得分:3)
由于hr
为Array
,请尝试此
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', '* * *')];
在这种情况下替换时不需要使用正则表达式。