var isDate_ = function(input) {
var status = false;
if (!input || input.length <= 0) {
status = false;
} else {
var result = new Date(input);
if (result == 'Invalid Date') {
status = false;
} else {
status = true;
}
}
return status;
}
Д'ох - вам нужно дважды закодировать: JSON.parse, конечно, ожидает строку:
<script type="text/javascript">
JSON.parse(<?php echo json_encode($s) ?>);
</script>
Может быть, я слепой, но в вашем примере они БЫЛИ сбежали. А как насчет
<script type="text/javascript">
JSON.parse("<?php echo $s ?>"); // Will throw SyntaxError
</script>
(обратите внимание на разные цитаты)
Просто дополнение к ответу Грега : выходные данные json_encode ()
уже содержатся в двойных кавычках ( "
), поэтому нет необходимости снова заключать их в кавычки:
<script type="text/javascript">
JSON.parse(<?php echo $s ?>);
</script>
Я до сих пор не нашел решения без str_replace
..
Попробуйте этот код .
$json_encoded_string = json_encode(...);
$json_encoded_string = str_replace("\r", '\r', $json_encoded_string);
$json_encoded_string = str_replace("\n", '\n', $json_encoded_string);
Надеюсь, что это поможет ...
$search = array("\n", "\r", "\u", "\t", "\f", "\b", "/", '"');
$replace = array("\\n", "\\r", "\\u", "\\t", "\\f", "\\b", "\/", "\"");
$encoded_string = str_replace($search, $replace, $json);
Это правильный путь