2015-02-02 6 views
0

Outlook 용 Office 앱에서 정규 표현식을하고 있습니다. 그리고 메일 본문 뭔가처럼 될 것입니다 :자바 스크립트 정규식 반환 분할 결과

Hello, I have the following path need to be translated. Can you help me with that? 
\\test1 
\\test2 
\\test3 
\\test4 
Thanks. 

내가 getRegExMatches를 사용하는 코드에서() 일치하는 패턴을 얻을 수 있습니다. 정규 표현식 :

<Rule xsi:type="ItemHasRegularExpressionMatch" PropertyName="BodyAsHTML" RegExName="test" RegExValue='file://[^"]*'/> 

코드 :

matches=Office.context.mailbox.item.getRegExMatches().test; 

그리고 일치 일치하는 패턴 배열입니다 :

[file://\\test1,file:///\\test2,file://\\test3,file:///\\test4]; 

하지만이 같은 결과를 반환 할 :

[\\test1,\\test2,\\test3,\\test4] 

정규 표현식을 사용하여 결과를 분할 할 수 있습니까? 또는 파일을 없애기 위해 결과를 얻는 간단한 구현이 있습니다 : // 또는 file : ///. 배열을 반복하여 결과를 얻을 수도 있지만 더 나은 솔루션이 있는지 궁금합니다.

+1

사용 a를 기능을 대체하십시오. 하나는'file :'을 없애고'/'를 제거하는 또 하나는 –

+0

당신의 질문을 잘 이해하지 못합니다. 당신은 regExp를 요청하고 그 패턴을 사용하여 결과를 배열에 저장합니까 ?? – galeonweb

+0

예제와 정규 표현식을 추가 할 수 있습니까? – wnbates

답변

0

당신이 당신의 배열이 있으면, 당신이 오는 것을 얻을 정규 표현식을 사용할 수 있습니다 //

var files = matches.map(function(f) { return f.match(/\/\/(.*)/)[1]; }) 

후 또는 항상 file://로 시작한다면 당신은 문자열 사용할 수 있습니다

var files = matches.map(function(f) { return f.substring('file://'.length); }) 
+0

두 번째 해결책은 우아하지만, 결과가 항상 file : //로 시작하는 것은 아닙니다. 그것은 file : /// 일 수 있습니다. 그리고 정규 표현식을 사용하여 ///////가 여러 개있는 상황이 발생하면 // 다음에 오는 것을 얻지 못합니다. 마지막으로 // 싶습니다. – Gabriel

+0

글쎄,'/'의 숫자 뒤에 모든 것을 갖도록'map (function (f) {f.match (/ \/+ (. *) /) [1];})'시도 할 수 있습니다. 하지만이 ItemHasRegularExpressionMatch에 익숙하지 않아 XML에서 더 나은 정규 표현식을 사용할 수 있습니다. – floribon

+0

감사합니다. 그것은 작동합니다. – Gabriel