2011-08-23 102 views
5

如果給定的正則表達式有效,我想檢查Adobe AIR。 我正在尋找somtehing喜歡這裏差不多:How to check if a given Regex is valid?AIR,Flex - 如何檢查正則表達式是否有效


我不想比較正則表達式和文本的價值 - 我絕對要檢查,如果這個表達式是有效的。如果有人輸入無效的正則表達式 - 例如:「x {5,-3}」或「(((^^ $$$)//)」或類似的東西,我只需要和他溝通,這個正則表達式不是有效 - 它不是正確的正則表達式

在Java中它可以這樣做: [代碼]

try { 
      Pattern.compile(userInputPattern); 
     } catch (PatternSyntaxException exception) { 
      System.err.println(exception.getDescription()); 
      System.exit(1); 
     } 

[/代碼]

+0

應該有一個正則表達式... – Kodiak

+0

有趣的是,AS3似乎沒有這個功能。 –

回答

0

你說的 「有效」 的意思是如果你?想要檢查正則表達式是否與特定字符串匹配,則可以使用RegExp::test() - 如果匹配則返回true,如果有匹配則返回false不是。

+0

我知道 - 我只是想檢查我的正則表達式是否沒有錯。我需要檢查模式是確定 – mihau

+0

我只是想檢查,如果正則表達式的語法是有效的 - 而不是在例如測試正則表達式 在Java中它可以這樣做: 嘗試{ Pattern.compile(userInputPattern); catch(PatternSyntaxException異常){System.err.println(exception.getDescription()); System.exit(1); } – mihau

+0

好吧,很可能它不能完成 - 多數民衆贊成 - 我只是想知道它可以或不可以完成 – mihau

1

據我所知,您正在尋找一個測試應用程序,您可以在其中輸入正則表達式和值,並且應用程序會告訴您是否存在匹配項。假設是你想要的,這段代碼會爲你做它:

<?xml version="1.0" encoding="utf-8"?> 
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx"> 

    <fx:Script> 
     <![CDATA[ 
      private function test(regex:String, value:String):String { 
       return new RegExp(regex).test(value) ? "MATCH" : "NOT A MATCH"; 
      } 
     ]]> 
    </fx:Script> 

    <s:Form> 
     <s:FormItem label="RegEx:"> 
      <s:TextInput id="regex" /> 
     </s:FormItem> 
     <s:FormItem label="Test Value: "> 
      <s:TextInput id="testValue" /> 
     </s:FormItem> 

     <s:Label text="{test(regex.text, testValue.text)}" /> 
    </s:Form> 

</s:WindowedApplication> 
+0

不exacly - 我不想比較正則表達式和文本值 - 我想檢查,如果這個正則表達式是有效。 如果有人輸入無效的正則表達式 - 例如:「x {5,-3}」或「(((^^ $$$)//)」或類似的東西,我只需要與他溝通,這個正則表達式是不正確的 - 它不是正確的正則表達式 – mihau

+0

Gotcha。遺憾的是,我沒有看到任何證據表明RegEx支持這一點。 –

相關問題