也许我犯了一个非常愚蠢的错误,但在这里。我想借此[ 'hr' ]
并把它变成[ '* * *' ]
所以我这样做:JavaScript:替换数组中的字符串
var hr = jsonml[i]
console.log(hr)
// outputs: [ 'hr' ]
hr.replace(/hr/g, '* * *')
但我得到这个错误:
TypeError: Object hr has no method 'replace'
我在做什么错?
也许我犯了一个非常愚蠢的错误,但在这里。我想借此[ 'hr' ]
并把它变成[ '* * *' ]
所以我这样做:JavaScript:替换数组中的字符串
var hr = jsonml[i]
console.log(hr)
// outputs: [ 'hr' ]
hr.replace(/hr/g, '* * *')
但我得到这个错误:
TypeError: Object hr has no method 'replace'
我在做什么错?
由于hr
是Array
,尝试这种
hr[0] = hr[0].replace(/hr/g, '* * *');
或
hr = hr[0].replace(/hr/g, '* * *');
'replace()'返回操作的结果,它不会改变你调用它的变量。所以试试'hr = [hr [0] .replace(...)]'。 (假设你想继续把hr当成一个数组) – 2015-03-02 14:17:27
小时是含有一个字符串元素的数组。我会做这样的:
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可以包含多个元素
你可以看到对象的typeof:
alert(typeof hr);
你会看到这个对象是一个数组!
使用本:
for (i = 0; i < hr.length; i++) {
var result = hr[i].replace(/hr/g, '* * *');
}
仅仅是为了提供实际做什么OP请求(无多,不会少)回答的缘故:
hr = [hr[0].replace('hr', '* * *')];
无需使用常规在这种情况下替换时的表达。
'hr'应该是'String'类型的 – 2015-03-02 14:14:03
hr [0] .replace(/ hr/g,'* * *')? – 2015-03-02 14:14:14