2014-01-23 144 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

相关问题