2014-01-23 115 views
0

感謝所有,我在JavaScript中遇到了一個問題,而問題是:JavaScript的正則表達式將文字用引號字符串

我有一個字符串:如:

{"results":[{"id":"id1","text":"text1"},{"id":"id2","text":"text2"},{"id":"id3","text":"text3"}]} 

然後,我想要得到的字符串如:

id1|text1|id2|text2|id3|text3 

那麼我應該如何編寫正則表達式?

非常感謝你,我是StackOverFlow的新成員!

+1

爲什麼寫正則表達式?這是JSON!只需解析它(用'JSON.parse()'),然後從對象中構建你的字符串(通過遍歷它)。 –

+1

你不應該爲JSON寫一個正則表達式! – Bergi

回答

3

我有一個字符串

該字符串是JSON format,這與JavaScript的工作非常出色。

那麼我應該如何編寫正則表達式呢?

你不應該寫一個正則表達式。如果你沒有,你only had two problems

.replace(/(^.+?|"\},\{)?"id":"|","text":"|"}[^"]*$/g, "|").slice(1,-1)

相反,parse串入一個對象,並從那裏提取ID文本對:

var result = JSON.parse(string).results.map(function(el) { 
    return el.id+"|"+el.text; 
}).join("|"); 
+0

非常感謝你,我已經試過你的正則表達式,它的工作原理。但是我不會讓它與JSON一起工作,也許我有什麼問題,因爲我不熟悉這一點。我曾經警告(結果)或警報(result.id),他們都沒有顯示。 – qiweiren

+0

你應該比那個可怕的正則表達式更容易熟悉JSON。不要*只使用它,因爲它在這個簡單的輸入上工作。 – Bergi

相關問題