এখন দৃশ্যত \r
, \b
, \t
, \f
, ইত্যাদি শুধুমাত্র সমস্যাযুক্ত অক্ষর যে আপনি এই এরর দিতে পারেন না।
নোট করুন যে কিছু ব্রাউজারের ইনপুটটির জন্য অতিরিক্ত প্রয়োজনীয়তা থাকতে পারে JSON.parse
।
আপনার ব্রাউজারে এই পরীক্ষার কোডটি চালান:
var arr = [];
for(var x=0; x < 0xffff; ++x){
try{
JSON.parse(String.fromCharCode(0x22, x, 0x22));
}catch(e){
arr.push(x);
}
}
console.log(arr);
Chrome- এ টেস্টিং, আমি দেখতে এটি করার অনুমতি দেয় না JSON.parse(String.fromCharCode(0x22, x, 0x22));
যেখানে x
34, 92, বা 0 থেকে 31 হয়।
চর 34 এবং 92 হয় "
এবং \
যথাক্রমে অক্ষর, এবং তারা সাধারণত বলে আশা করা হয় এবং সঠিকভাবে পালিয়ে গিয়েছিলেন। এটি 0 থেকে 31 পর্যন্ত অক্ষর যা আপনাকে সমস্যা দেয়।
ডিবাগিংয়ে সহায়তা করতে, আপনার করার আগে JSON.parse(input)
, প্রথমে যাচাই করুন যে ইনপুটটিতে সমস্যাযুক্ত চরিত্রগুলি নেই:
function VerifyInput(input){
for(var x=0; x<input.length; ++x){
let c = input.charCodeAt(x);
if(c >= 0 && c <= 31){
throw 'problematic character found at position ' + x;
}
}
}