배열로 변환하는 문자열이 있습니다.
var data = "[[1, 2, 3,], [3, 2, 1]]";
var array = JSON.parse(data.replace(/,\s*]/g, ']'));
부동 소수점, 즉이 형식의 입력을 처리 할 수 있어야합니다.
var data = "[[2.,23.,1.5904], [4.,23,1.6208]]";
브라우저 콘솔을 사용하여 시도 할 때 :
var ar = JSON.parse(data.replace(/,\s*]/g, ']'));
이 오류가 발생합니다.
SyntaxError: JSON.parse: unterminated fractional number at line 1 column 5 of the JSON data
나는 그것이의 정규 표현식과 관련이 있다고 생각 JSON.parse()
하지만 아직 정규 표현식에 강하지 않기 때문에 단서가 없습니다.
나는 이것을 가지고 놀았습니다 : https://regexone.com/ 실제로 이해하는 데 도움이되었지만 여전히 문제를 해결할 수 없습니다.
이 질문은 이전 질문에 대한 일종의 확장입니다 (해결됨).
당시 제가 생각하지 못했던 것은 부동 소수점도 처리 할 수 있어야한다는 것입니다.
문제는 JSON에 점 뒤에 숫자가 필요하다는 것입니다.
올바른 JSON은 다음과 같습니다.
var data = "[[2.0,23.0,1.5904], [4.0,23,1.6208]]";
따라서 다음과 같이 전체 부동 숫자를 출력하거나 (출력을 제어 할 수있는 경우) 문자열을 구문 분석하여 모든 점에 0을 추가해야합니다.
data.replace(/\.,/g, ".0,").replace(/\.]/g, ".0]");
]
쉼표뿐만 아니라 근처에있는 점도 찾아야 합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다