JavaScript 대체가 첫 번째 인스턴스만 대체하는 이유: RegExp 플래그 탐색
JavaScript의 대체 메소드를 사용하여 문자열을 찾아 다른 문자열로 바꾸는 경우 , 대상 문자열의 첫 번째 인스턴스만 바뀌는 동작이 발생할 수 있습니다. 이 동작은 바꾸기의 기본 동작이 단일의 비전역 검색 및 바꾸기 작업을 수행하는 것이기 때문에 발생합니다.
전역 바꾸기: RegExp 플래그
모두 바꾸려면 문자열에 대상 문자열이 있는 경우, 바꾸기 메서드에 사용된 정규식에 "전역" 플래그(g)를 지정해야 합니다. 이 플래그는 검색 및 바꾸기 작업이 전체 문자열에 걸쳐 발생하여 대상 문자열의 모든 항목을 대체해야 함을 나타냅니다.
예를 들어 코드에서:
var date = $('#Date').val(); // e.g., "12/31/2009"
var id = 'c_' date.replace("/", ''); // c_1231/2009 (wrong)
"/" 문자의 모든 항목을 바꾸려면 "전역" 플래그를 지정해야 합니다.
var id = 'c_' date.replace(new RegExp("/", "g"), ''); // c_12312009 (correct)
또는 더 짧은 구문을 사용할 수 있습니다:
var id = 'c_' date.replace(/\//g, ''); // c_12312009 (correct)
"전역" 플래그를 지정하면 교체 메소드가 날짜 문자열의 모든 슬래시 문자를 대체하여 올바른 출력을 얻습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3