728x90
팝업이 안 나온다고 하여 확인해보니
Uncaught SyntaxError: Invalid regular expression: /+2022년 1월/: Nothing to repeat
if( option.match(info[i].LEVEL_SIGN) == null )
위와 같은 조건에서 비교하는 exp_info[i].LEVEL_SIGN의 값이 "+2022년 1월"라서 나온 문제.
오래된 소스이기도 하고... 데이터 입력시엔 +가 들어갈 일이 없는데 다른 프로그램을 쓰다가 데이터 이전하면서 저런 데이터가 생긴 건지 누가 DB에 강제적으로 업데이트 친건지 어쨌든... search를 쓰던 match를 쓰던 아무 조치를 안 하고 사용한다면 비슷한 오류가 나올 것 같습니다.
var text = "ABCD 가나다라 가나다라마바사아자차가 +2021 -2021";
var search= "+2021";
text.search(search);
'+'는 정규직에서 선행문자를 1번 이상 나타내는 문자열인데 해당 문자의 앞에 아무 문자가 없어서 나온 문제라고 추측했네요.
비슷한 예로 선행문자에 대한 처리를 하는 * (asterisk) 나 ? (question mark) 등에서도 같은 문제가 있을 것 같습니다.
var text = "ABCD 가나다라 가나다라마바사아자차가 +2021년 1월 -2021";
text.match("\\+2021");
해결 방법으로는 \ (backslash) 을 선행해준다거나 한다면 해결이 될 것 같습니다만...
저는 그냥 단순하게 match 대신 indexOf로 수정했습니다.
if( option.indexOf(info[i].LEVEL_SIGN) == -1 )
728x90
반응형
댓글