2009-04-14 2 views
1

이 작업은 AS3에서 어려움을 겪고 있습니다.Actionscript 3 : 전체 파일 경로에서 "\"문자를 이스케이프하는 데 문제가 있음

내가 할 수있는 기본/단순 또는 내장 방법이 누락 된 경우 실례합니다. 나는 RegExp에 정통하지 않다.

내가 정확히 ": \ 임시 \의 abc.doc D"과 같은 전체 파일 경로를 나타내는 DYNAMIC 문자열을 가지고있다. 전체 문자열에서 이라는 파일 이름 부분을 추출하고 싶습니다. 예 : abc.doc.

"fullPath.lastIndexOf ("\\ ")"또는 정규식을 사용하는 것과 같은 기술을 알고 있습니다. 문제는 경로에 "\"이 있으면 작동하지 않는 것입니다. "/"와 함께 작동합니다. 동적 인 경로는 "\"를 "/"또는 다른 분리 문자로 바꾸기 위해 조작 할 수 없습니다. 내 해석은 "\"가 문자를 이스케이프 처리하는 데 사용되기 때문에 "\"이후에 나타나는 문자는 actionscript으로 무시됩니다. 예 : 사용 원시 문자열을 얻을 수 있도록 문자열에 valueOf 속성을 사용하는 경우

var fullPath:String = "A\B\C"; 

trace(fullPath.length); //**RETURNS 3** since "\B" & "\C" 
         // are being treated as SINGLE chars 

var bSlash:int = fullPath.lastIndexOf("\\") //RETURNS **-1** 

답변

0

나는 당신이 당신이 원하는 것을 얻을 수 있습니다, 생각합니다. Actionscript 3는 일반적으로 이스케이프 문자로 마법적인 일을하는 커다란 멋진 문자열 객체를 만듭니다. 그러나 원시 문자열은 JavaScript/ECMA 문자열과 비슷하며 백 슬래시는 별도의 문자로 표시되어야합니다. 이것을 테스트하지는 않았지만 시도해보십시오.

8

A\\B\\C을 사용해야합니다. 대부분의 언어 에서처럼 이스케이프 처리되지 않은 \이있는 문자열 리터럴은 다음 문자와 결합하여 이스케이프 시퀀스를 만듭니다. 동적 문자열을 제대로 생성하지 못한다는 느낌이 들었습니다. 문자열이 경로라고 가정하면 \\을 사용하여 백 슬래시를 이스케이프 처리하여 경로 부분 사이에 별도의 \ 문자를 포함해야합니다.

0

현명하게 지적했듯이 문제는 문자열 리터럴 대신 문자열 값을 사용하는 것입니다. This 링크는 나를 분류하는 데 도움이되었습니다.

관련 문제