2014-01-15 5 views
1

ECMA-262 regex를 준수해야하며 NSRegularExpression은 ICU regex를 준수해야합니다. According to Wikipedia, 둘 사이에 약간의 차이가 있습니다. - NSRegularExpressionNSMatchingOptions 또는 NSRegularExpression ECMA-262를 준수하도록 전달할 수있는 옵션이 있습니까 (아니면 적어도 준수에 가까움)?NSRegularExpression을 ECMA-262와 호환되도록 구성하는 방법

코드 :

NSError * error; 
NSRegularExpression * regex = [NSRegularExpression regularExpressionWithPattern:regexString options:0 error:&error]; 
if (!error && [regex firstMatchInString:keyString options:0 range:NSMakeRange(0, keyString.length)]) { 
    return YES; 
} 
+0

설명서에서 확인할 수있는 옵션은 없습니다. 그리고 ICU 정규식은 ECMA-262보다 자바의 맛에 더 가깝습니다. – nhahtdh

+0

감사합니다 nhahtdh. 나는 ECMA 풍미에 가까워 질 필요가있다. 내가 알아 차린 중요한 차이점 중 하나는 ICU를 둘러보기 기능으로 사용한다는 것입니다. 적어도이 문제를 해결할 수 있는지 궁금합니다 ... – Sam

+0

발견 된이 http://stackoverflow.com/questions/5317776/embed-a-javascript-engine-in-an-ios-application this : https : // developer.apple.com/library/mac/documentation/Carbon/Reference/WebKit_JavaScriptCore_Ref/_index.html – nhahtdh

답변

1

NSRegularExpression의 문서와 the syntax of ICU regular expression에 대한 설명서는 ECMA-262 정규식과 호환 엔진을 만드는 것도 포함하지 않는 것 같습니다.

  • 로드합니다 UIWebView 및 방법을 사용합니다 :

    - (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script 
    

    그것을 ECMA-262 사양에 따르는 정규식 일치를 평가하기 위해 자바 스크립트 엔진을 사용하는 방향으로가는

    이 질문의 저자에 의해 느린이라고합니다 Embed a JavaScript engine in an iOS application

  • JavaScriptCore 프레임 워크를 사용하십시오. JSContextRef.h을 확인한 다음 JSBase.h을 확인하여 제대로 작동하는지 확인하십시오.

    This answer 동일한 질문에서 또한 JavaScriptCore 프레임 워크를 소개하는 WWDC 2013 프리젠 테이션의 비디오를 참조하십시오.

  • 동일한 질문에서 another answer에 언급 된 바에 따르면 앱과 함께 자바 스크립트 엔진을 빌드하고 배송 할 수 있습니다.