2013-04-17 172 views
0

?testMSG=ÁáÉéÍíÑñÓóÚúÜü«»¿¡€查找非ASCII字符的字符串

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

可變ASCII返回1,這不應該。 REFind('[\ u0080- \ uFFFF]',arguments.textMSG)本身返回0,儘管textMSG包含128以上的字符。行本身在遠程函數中。

回答

1

根據the docs,ColdFusion的正則表達式實現不支持\ u轉義序列(事實上,我確信它完全不知道unicode的概念)。

要做你想在這裏,你將不得不使用Java regexes

+0

啊,我的道歉,錯過了那個小珍聞。因此ColdFusion不支持unicode regex,儘管ColdFusion是建立在Java之上的,現在我必須通過基於Java構建的ColdFusion來使用Java。尼斯。 – Alex

+0

嗯....是的。它使用ORO是因爲 - 我想 - 它最接近於CF在基於Java之前用於支持的內容。對於在CF中使用Java正則表達式我不會感到太多,因爲它非常容易(並且幾乎沒有其他代碼比在本機CF中執行代碼)。如果是幫助,我會在我的博客中討論如何操作:http://adamcameroncoldfusion.blogspot.co.uk/2013/03/regular-expressions-in-coldfusion-part.html –