我有以下字符串
{
"browser": "firefox",
"dateTime": "28_May_2014_03_35_PM"
}
{
"browser": "firefox",
"dateTime": "28_May_2014_03_36_PM"
}
我想在打开{
和关闭}
大括号之间获取元素。
答案 0 :(得分:1)
它看起来很像JSON编码的对象,但我看到有些不一致, 请注意您在开始字符串时的小编辑:
JSON.parse('[{"browser": "firefox","dateTime": "28_May_2014_03_35_PM"},{"browser": "firefox","dateTime": "28_May_2014_03_36_PM"}]');
//this will convert your string to an actual javascript object..
编辑:
如果你的json没有正确编码,你必须在这里和那里进行修正..你必须添加
[{ ... }]
{}, {}
您可以使用此代码完成此操作
假设var_string将包含您的字符串..
var_string = var_string.replace(/(\r\n|\n|\r)/gm,""); //removing line breaks;
var_string += '[' + var_string + ']'; //adding square brackets
var_string = var_string.replace(/}{/g, "},{"); //adding commas
var_string = JSON.parse(var_string); //parsing object
答案 1 :(得分:1)
Sanjay,已经提供了关于使用正则表达式的所有免责声明,因为你确实询问了正则表达式可以为你做什么,这里有一个表达式可以匹配每个元素中的两个标记。它假设每个元素只有两个令牌,所以如果不是这样,请告诉我们。
{\s*"([^"]*)":\s*"([^"]*)",\s*"([^"]*)":\s*"([^"]*)"
在demo中,查看右下方面板中的“群组”。
正则表达式意味着什么
演示的右上角有一个逐个令牌的解释。
如何使用正则表达式
这对您来说可能很明显,但这里是检索值的示例代码(请参阅code demo中的输出):
<script>
var subject = '{ \
"browser": "firefox", \
"dateTime": "28_May_2014_03_35_PM" \
} \
{ \
"browser": "firefox", \
"dateTime": "28_May_2014_03_36_PM" \
} \
';
var regex = /{\s*"([^"]*)":\s*"([^"]*)",\s*"([^"]*)":\s*"([^"]*)"/g;
var match = regex.exec(subject);
while (match != null) {
document.write("First token name: ",match[1],"<br />");
document.write("First token value: ",match[2],"<br />");
document.write("Second token name: ",match[3],"<br />");
document.write("Second token name: ",match[4],"<br />");
match = regex.exec(subject);
}
</script>