无法替换字符串中的\ t(TAB)

时间:2016-03-15 21:19:15

标签: javascript php json regex preg-replace

我有从数据库返回的这个JSON字符串

[{"id":"1723","name":"Picanha bovina Maturatta  15,00   250 ","slug":"picanha-bovina-maturatta-15-00-250"}]

实际上还有其他的东西,但我从示例中删除了它。

当用户以CSV格式上传文件时,此数据会保存到数据库中(因此他们只能从Excel或Google云端硬盘导出数据,而无需在CMS中逐项添加)。

现在,当我获取此数据并将其发送到Javascript并使用JSON解析时,它会出现“意外令牌[tab]”错误。

我尝试了几件事来取代它

$json = json_encode($input);
$json = str_replace(array("\r\n", "\r", "\n", "\t", "   "), "", $json);
$json = implode(' ',explode("\t", $json));
$json = preg_replace(array('/\s{2,}/', '/[\t\n]/'), ' ', $json);
$json = trim(preg_replace('/\s+/', '', $json));
$json = preg_replace('!\s+!m', ' ', $json);

这些都不起作用。为什么不呢?

注1:如果我在REGEX字符串中使用/ g变为空白 注意2:我确定有一个\ tab字符,因为如果我在Chrome上按CTRL + F或将其复制/粘贴到Gedit或http://json.parser.online.fr/我就能看到它。 注3:我直接在代码上更改了输入,比如“test \ t \ t \ t \ t ttest”,它仍然可以正常工作 注意4:Javascript可以替换它:JSON.parse(PRODUCTS.split("\t").join(" "))并且它可以正常工作

任何人都知道为什么?

1 个答案:

答案 0 :(得分:0)

preg_replace('/\t+/', '', $string)