也許我犯了一個非常愚蠢的錯誤,但在這裏。我想借此[ '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