2013-05-18 2 views

답변

0

당신은을 사용할 수는 그것은 위의 코드에서 두배 그 이유는,

var rx:RegExp = /\\\\/g; 
var s:String = "c:\\\\folder\\\\folder\\\\folder\\\\file.ext"; 

trace (s); 
s = s.replace (rx, "\\"); 
trace (s); 

당신은 리터럴 문자열 내부의 \ 문자를 탈출해야합니다 String.replace() 기능은 그렇게 할 수 있습니다.

+0

Ive는 전에 시도했습니다. 당신의 제안에 대해서는 다시 시도했지만 그다지 일하지 않았습니다. 다른 방법으로 그것을 할 수 있습니까? 이 병자. 너무 복잡한. 또한 나는 모두를 대체해야합니다. 어쩌면 정규식 솔루션일까요? – StephenNYC

+0

@StephenNYC 죄송합니다. 패턴이 전역으로 설정되어 있지 않으면 AS3 만 단일 바꾸기를 수행한다는 사실을 잊었습니다. 이전에 사용했던 테스트 문자열에 '\\\'가 하나만 있기 때문에 작동했습니다. 내가 correc이 내 대답을 편집했습니다. – xxbbcc

+0

나는 막달레 마귀를 느낀다. 내 문자열에는 네 개의 백 슬래시가 있지만 두 개의 백 슬래시는 내 질문에 지정된 것과 같습니다. 그것은 myfile.nativePath에서 가져온 것입니다 그래서 나는 그것의 이스케이프 단일 백 슬래시 같아요. 당신이 제공 한 정규 표현식을 적용한다면, 어떤 효과가 없으며 그것은 이미 단일 백 슬래시이기 때문에 이해할 수 있습니다. 하지만 난 하나의 백 슬래시가있는 문자열 리터럴을 빌드해야합니다. 명령 줄 실행 파일에 매개 변수로 전달해야합니다. 아래처럼 실행합니다. 그것은 앞으로 슬래시를 받아들이지 않습니다. 그래서 나는 선택의 여지가 없습니다. – StephenNYC

관련 문제