개발 Q&A

제목 ()를 치환 및 인코딩 하는 방법이 있을까요?
카테고리 JavaScript
글쓴이 정수리 작성시각 2018/11/27 10:25:02
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 8221   RSS

encodeURIComponent()함수로는 '()'가 인코딩되지 않아 '()'다른 특수문자로 치환한후 

인코딩시켜 보낼려고 합니다. 

꼼수로 replace()함수와 정규식을 사용하여 

치환을 할려고 합니다. 

test.replace('(', '='); test.replace(')', '='); 

이걸로 했을 경우 

문자열에서 처음발견한 것만 치환하고 뒤에있는 '()'는 치환하지 않아 

test.replace(/()/g, '='); 

로 변경하였습니다. 

그리고 인코딩 테스트를 해보았지만 

'()'포함되어 있지 않는 문자열에 

문()자()열 

이렇게 들어가 있더라구요... 

'()'가 포함되어 있는 문자열은 

똑같이 허용할수 없는 문자열이 포함되어 있다면서 오류가 발생합니다.. 

어떻게 해야 '()'를 치환할수 있을까요?

var contractName = $('input[name="contractName"]').val();
contractName = contractName.replace(/()/g,"=");
contractName = encodeURIComponent(contractName);      
 var url = getDomain()+'contract/search/showBasis/'+contractName;

 

 다음글 DB 설계에 대한 조언 부탁드립니다. (2)
 이전글 PHP extension 문제 (2)

댓글

배강민 / 2018/11/27 14:46:31 / 추천 0

정규식에서 괄호는 그룹핑을 위해서 사용되는 문자로서 저렇게 스트링 괄호를 찾으려면

() 에서 각 문자 앞에 역슬래쉬를 붙여서 \(\) 으로 해야합니다.