2013-04-17 2 views
0

?testMSG=ÁáÉéÍíÑñÓóÚúÜü«»¿¡€문자열에 ASCII가 아닌 문자를 찾기

<cfset ascii = NOT REFind('[\u0080-\uFFFF]', arguments.textMSG)>

변수 아스키는 안 1을 반환합니다. REFind ('[\ u0080- \ uFFFF]', arguments.textMSG) 자체는 128 이상의 문자를 포함하는 textMSG에도 불구하고 0을 반환합니다. 줄 자체는 원격 cffunction 안에 있습니다.

답변

1

the docs에 따르면 ColdFusion의 정규 표현식은 \ u 이스케이프 시퀀스를 지원하지 않습니다. 실제로 유니 코드의 개념을 전혀 모르고 있습니다.

여기에서 원하는 것을하려면 Java regexes을 사용해야합니다.

+0

아, 내 사과, 그 작은 맛있는 음식에 눈치 채지 못했습니다. 따라서 ColdFusion은 Java에서 ColdFusion을 구현 했음에도 불구하고 unicode regex를 지원하지 않습니다. 이제 Java를 기반으로하는 ColdFusion을 통해 Java를 사용해야합니다. 좋은. – Alex

+0

음 .... 네. 그것은 ORO를 사용했는데 CF가 Java 기반이되기 전에 지원했던 것과 가장 비슷했기 때문입니다. 필자는 CF에서 Java 정규 표현식을 사용하는 것에 대해 너무 많이 애도하지 않을 것입니다. 왜냐하면 죽은 것처럼 쉽고 (네이티브 CF에서 코드를 작성하는 것보다 더 많은 코드는 거의 없습니다.) 그것이 도움이된다면, 나는 내 블로그에서 그렇게하는 방법을 토론한다 : http://adamcameroncoldfusion.blogspot.co.uk/2013/03/regular-expressions-in-coldfusion-part.html –

관련 문제