파일패스의 확장자 치환
기본적인 내용이지만 짜증나서 작성함.
javasciprt 에서 확장자 .bin을 .html로 바꿔야 한다면 보통 아래와 같이 쓸 것이다.
이때 주의할 것은, 정규식의 점(.)은 모든 문자를 의미하므로 앞에 역슬래시를 붙여줘야 한다는 것이다.
var basicPath = “기본파일패스”;
basicPath= basicPath.replace(/\.bin/g, “.html”);
하지만 상단의 코드보다 하단의 코드를 권장한다.
이유는 패스상에 .bin이 하나 더 포함될 수도 있고, 정규식에서 역슬래시를 쓰지 않고 점(.)만 사용할 경우 abin, bbin, cbin, …, zbin 등 다 바뀌어버리는 부작용이 일어날 수 있기 때문이다. (매우 흔하게 발견되는 사례임)
확장자는 제일 끝에 1번만 위치하는게 정상이므로, 바꿔줄 때도 lastIndexOf를 이용해 마지막 부분만 갈아끼워주는게 정석이다. 제발.
var basicPath = “기본파일패스”;
var lastIdx = basicPath.lastIndexOf(“.bin”);
if (lastIdx > -1) {
basicPath = basicPath.substring(0, lastIdx) + “.html”;
}