很久没写文章了,来一篇
有些需求是用户在输入框中输入数组、json对象,我们拿到后转成object格式。
用户输入的时候不可能严格的按照标准的json字符串格式来输入,所以用JSON.parse()来解析会很不友好,这时候可以使用eval()来解析。
下面是代码(jquery自己引入)
<!DOCTYPE html>
<html>
<head>
<title>json</title>
<script type="text/javascript" src="jquery.js"></script>
</head>
<body>
<textarea name="" cols="30" rows="10" id="ipt"></textarea>
<button class="btn">测试</button>
<script type="text/javascript">
$(function() {
$('.btn').click(function() {
var ipt_text = $('#ipt').val();
// 去除空格
var ipt_str = ipt_text.replace(/\s*/g,"");
// 构建函数字符串,供eval解析
var fun_str = 'get(' + ipt_str + ')';
var result;
try {
result = eval(fun_str);
}
catch(err) {
// 这里可以给用户一些提示,让输入数组或json格式,而不是其它类型的字符串
console.log('错误了');
console.log(err);
}
console.log(result);
console.log(typeof(result));
})
function get(text){
return text;
}
})
</script>
</body>
</html>