var myname = str.match(/\?name=([^&]+)&/)[1];
[1] заключается в том, что вы, по-видимому, хотите получить значение группы (часть регулярного выражения в скобках).
var str = "/pages/new?name=reaojr&return_url=/page/new";
var matchobj = str.match(/\?name=([^&]+)&/)[1];
document.writeln(matchobj); // prints 'reaojr'
Ваши данные уже являются объектом. Не нужно разбирать его. Интерпретатор javascript уже проанализировал его для вас.
var cur_ques_details ={"ques_id":15,"ques_title":"jlkjlkjlkjljl"};
document.write(cur_ques_details['ques_title']);
Однако источником вашей ошибки является то, что вам нужно поместить полную строку JSON в кавычки. Ниже будет исправлен ваш пример:
<!doctype HTML>
<html>
<head>
</head>
<body>
<script type="text/javascript">
var cur_ques_details ='{"ques_id":"15","ques_title":"jlkjlkjlkjljl"}';
var ques_list = JSON.parse(cur_ques_details);
document.write(ques_list['ques_title']);
</script>
</body>
</html>
Как уже отмечали другие респонденты, объект уже разбирается в объект JS, поэтому вам не нужно его разбирать. Чтобы продемонстрировать, как выполнить одно и то же без разбора, вы можете сделать следующее:
<!doctype HTML>
<html>
<head>
</head>
<body>
<script type="text/javascript">
var cur_ques_details ={"ques_id":"15","ques_title":"jlkjlkjlkjljl"};
document.write(cur_ques_details.ques_title);
</script>
</body>
</html>
Я видел эту ошибку unexpected token o
, потому что мой (неполный) код выполнялся ранее (live reload!) и задал для указанного ключевого значения локального хранилища значение [object Object]
вместо {}
. Только когда я сменил ключи, все началось, как и ожидалось. В качестве альтернативы вы можете выполнить эти инструкции, чтобы удалить неверно установленное значение localStorage .
У меня была та же проблема, когда я отправил данные с помощью jQuery AJAX:
$.ajax({
url:...
success:function(data){
//server response's data is JSON
//I use jQuery's parseJSON method
$.parseJSON(data);//it's ERROR
}
});
Если ответом является JSON, и вы используете этот метод, данные, которые вы получаете, являются объектом JavaScript, но если вы используйте dataType:"text"
, данные - строка JSON. Тогда использование $.parseJSON
в порядке.
JSON.stringify
ничего не сделает с вашими данными, функция фактически возвращает сериализованные данные now i>.
– Tom Hofman
15 August 2017 в 11:08
Ответ уже разобран, вам не нужно его снова разбирать. если вы снова проанализируете его, он даст вам «unexpected token o
». если вам нужно получить его как строку, вы можете использовать JSON.stringify()
cur_ques_details
уже является объектом JS, вам не нужно его анализировать
Попробуйте разобрать так:
var yourval = jQuery.parseJSON(JSON.stringify(data));