Javascript 正则表达式删除JS格式字符串中的额外空格

Javascript 正则表达式删除JS格式字符串中的额外空格,javascript,php,regex,whitespace,Javascript,Php,Regex,Whitespace,我有下面的字符串 $json = ' insert: [ { table:" abc",values:{id:1,text:" lorem ipsum "} }, { table : "cde " , values : { id : 2 , firstname : "lorem ipsum dolor sit " } } ] '; 已尝试使用下面的正则表达式,但结果不是预期的 $json = pre

我有下面的字符串

$json = '
    insert: [
        { table:" abc",values:{id:1,text:" lorem ipsum "} },
        {   table  :  "cde "  ,  values   :   { id  : 2  , firstname  :  "lorem ipsum   dolor sit    " } } 
    ]
    ';
已尝试使用下面的正则表达式,但结果不是预期的

$json = preg_replace('~\s{1,}~', '', $json);
我喜欢下面的报税表

 {"insert": [{"table": "abc", "values": {"id": 1, "text": "lorem ipsum"}}, {"table": "cde", "values": {"id": 2, "text": "lorem ipsum dolor sit"}}]}
然后使用json_decode()

我希望我已经说清楚了

更新:

$json_string = '
    insert: [
        { table:" abc",values:{id:1,text:" lorem ipsum "} },
        {   "  table  "  :  "cde "  ,  "  values"   :   { id  : 2  , firstname  :  "lorem ipsum   dolor sit    " } } 
    ]
    ';
{"insert": [{"table": " abc","values": {"id": 1,"text": " lorem ipsum "} },{"table": "cde "  ,"values": {"id": 2  ,"firstname": "lorem ipsum   dolor sit    " } }]}

Array
(
    [insert] => Array
        (
            [0] => Array
                (
                    [table] =>  abc
                    [values] => Array
                        (
                            [id] => 1
                            [text] =>  lorem ipsum 
                        )

                )

            [1] => Array
                (
                    [table] => cde 
                    [values] => Array
                        (
                            [id] => 2
                            [firstname] => lorem ipsum   dolor sit    
                        )

                )

        )

)
我有下面的字符串

$json = '
    insert: [
        { table:" abc",values:{id:1,text:" lorem ipsum "} },
        {   table  :  "cde "  ,  values   :   { id  : 2  , firstname  :  "lorem ipsum   dolor sit    " } } 
    ]
    ';
示例:

$json_string = '
    insert: [
        { table:" abc",values:{id:1,text:" lorem ipsum "} },
        {   "  table  "  :  "cde "  ,  "  values"   :   { id  : 2  , firstname  :  "lorem ipsum   dolor sit    " } } 
    ]
    ';
{"insert": [{"table": " abc","values": {"id": 1,"text": " lorem ipsum "} },{"table": "cde "  ,"values": {"id": 2  ,"firstname": "lorem ipsum   dolor sit    " } }]}

Array
(
    [insert] => Array
        (
            [0] => Array
                (
                    [table] =>  abc
                    [values] => Array
                        (
                            [id] => 1
                            [text] =>  lorem ipsum 
                        )

                )

            [1] => Array
                (
                    [table] => cde 
                    [values] => Array
                        (
                            [id] => 2
                            [firstname] => lorem ipsum   dolor sit    
                        )

                )

        )

)
我想要以下输出

$json_replaced = '{"insert": [{"table": "abc", "values": {"id": 1, "text": "lorem ipsum"}}, {"table": "cde", "values": {"id": 2, "text": "lorem ipsum dolor sit"}}]}';

以下内容适用于您:

$json = '
    insert: [
        { table:" abc",values:{id:1,text:" lorem ipsum "} },
        {   table  :  "cde "  ,  values   :   { id  : 2  , firstname  :  "lorem ipsum   dolor sit    " } } 
    ]
';
$json = '{' . $json . '}';
$json = preg_replace(array('/ *\n */', '/(?<=[{,]) *([^\s:]+) *: */'),
                     array("", '"$1": '), $json);
echo $json; // converted json string
print_r(json_decode($json, true)); // decoded array

您不能运行以下命令:

$json_string=preg_replace(“/\s{2,}/”,“”,$json_string)

输出为:

insert: [{ table:" abc",values:{id:1,text:" lorem ipsum "} },{"table":"cde ","values":{ id: 2, firstname:"lorem ipsumdolor sit" } }]

从何处/如何获取
$json
值?我认为这是可能的。正如你们从上面的输出可以看到的,它工作得很好。但如果你的输入Json与post不一样,我可以在明天早上调试。我必须做出改进,但这对我有好处。如果您能进一步改进正则表达式,我将非常感激。很高兴知道它是有效的,请考虑将其标记为“接受”,这样将来面对类似问题的用户将能够轻松地看到它。如果您想清理引号之间的间距,那么也要运行一个正则表达式,所以不超过2行代码。今天我碰到了我自己的问题——我的答案正确,当前标记的答案无效。