복붙노트

[JQUERY] 대체 사용할 때 왜 자바 스크립트는 첫 번째 인스턴스가 대체됩니까? [복제]

JQUERY

대체 사용할 때 왜 자바 스크립트는 첫 번째 인스턴스가 대체됩니까? [복제]

해결법


  1. 1.당신은 세계적으로 대체 할 g 플래그를 설정해야합니다 :

    당신은 세계적으로 대체 할 g 플래그를 설정해야합니다 :

    date.replace(new RegExp("/", "g"), '')
    // or
    date.replace(/\//g, '')
    

    그렇지 않으면 첫 번째 발생이 대체됩니다.


  2. 2.당신이하려면 string.replace 방법에 문자열에 일치 인수로 문자열을 통과 할 때 달리 C # /. NET 클래스 라이브러리 (그리고 다른 대부분의 재치있는 언어), 그것은 문자열을 대체하지 않습니다. 그것은 정규식으로 문자열을 변환하고 정규식 대체 않습니다. 검보의 설명에, 정규식 대체 한 번에 모든 일치를 대체하기 위해 기본적으로에없는 글로벌 플래그를 필요로한다.

    당신이하려면 string.replace 방법에 문자열에 일치 인수로 문자열을 통과 할 때 달리 C # /. NET 클래스 라이브러리 (그리고 다른 대부분의 재치있는 언어), 그것은 문자열을 대체하지 않습니다. 그것은 정규식으로 문자열을 변환하고 정규식 대체 않습니다. 검보의 설명에, 정규식 대체 한 번에 모든 일치를 대체하기 위해 기본적으로에없는 글로벌 플래그를 필요로한다.

    당신이 원하는 경우 실제 문자열 기반 교체 - 예를 들어 경기-string이 역동적이고 regexen에서 특별한 의미가 문자를 포함 할 수 있기 때문에 - 즉에 대한 자바 스크립트 관용구 :

    var id= 'c_'+date.split('/').join('');
    

  3. 3.당신이 사용할 수있는:

    당신이 사용할 수있는:

    String.prototype.replaceAll = function(search, replace) {
    if (replace === undefined) {
        return this.toString();
    }
    return this.split(search).join(replace);
    }
    
  4. from https://stackoverflow.com/questions/1967119/why-does-javascript-replace-only-first-instance-when-using-replace by cc-by-sa and MIT license