program tip

node.js string.replace가 작동하지 않습니까?

radiobox 2021. 1. 10. 17:03
반응형

node.js string.replace가 작동하지 않습니까?


var variableABC = "A B C"; 
variableABC.replace('B', 'D') //wanted output: 'A D C'

하지만 'variableABC'는 변경되지 않았습니다.

variableABC = 'ABC'

내가 'AD C'가되고 싶을 때.


Javascript 표준에 따르면 String.replace문자열 자체를 수정해서는 안됩니다. 수정 된 문자열 만 반환합니다. 자세한 정보 Mozilla 개발자 네트워크 문서 를 참조하십시오.

항상 문자열을 수정 된 값으로 설정할 수 있습니다.

variableABC = variableABC.replace('B', 'D')

편집 : 위에 주어진 코드는 첫 번째 발생 만 대체하는 것입니다.

모든 발생을 바꾸려면 다음을 수행 할 수 있습니다.

 variableABC = variableABC.replace(/B/g, "D");  

모든 발생을 바꾸고 대소 문자를 무시하려면

 variableABC = variableABC.replace(/B/gi, "D");  

문자열은 항상 불변으로 모델링됩니다 (적어도 상위 수준 언어 인 python / java / javascript / Scala / Objective-C).

따라서 연결, 교체와 같은 모든 문자열 작업은 항상 의도 된 값을 포함하는 새 문자열을 반환하지만 원래 문자열은 여전히 ​​동일합니다.


string.replace 가 소스 문자열을 수정하는 대신 값을 반환 하지 않습니까?

따라서 variableABC를 수정하려면 다음을 수행해야합니다.

var variableABC = "A B C";

variableABC = variableABC.replace('B', 'D') //output: 'A D C'

정규식을 사용하지 않고 문자열에서 하위 문자열의 모든 인스턴스를 제거하려면 다음을 사용할 수 있습니다.

    var replacestring = "A B B C D"
    const oldstring = "B";
    const newstring = "E";
    while (replacestring.indexOf(oldstring) > -1) {
        replacestring = replacestring.replace(oldstring, newstring);
    }        
    //result: "A E E C D"

참조 URL : https://stackoverflow.com/questions/21162097/node-js-string-replace-doesnt-work

반응형