2011-08-23 13 views
5

Voglio controllare Adobe AIR se la regex è valida. Sto cercando somtehing simile come qui: How to check if a given Regex is valid?AIR, Flex - come verificare se la regex è valida


non voglio confrontare regex e text-valore - i jus vogliono verificare se questa espressione regolare è valido. Se qualcuno digita espressioni regolari non valide, ad esempio: "x {5, -3}" o "(((^^ $$$) //)" o qualcosa del genere, ho solo bisogno di comunicare a lui che questa espressione regolare non è valido - la sua non corretta espressione regolare

In Java può essere effettuata mediante:. [code]

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

[/ code]

+0

Ci dovrebbe essere una regex per questo ... – Kodiak

+0

Interessante, AS3 non sembra avere questa funzionalità. –

risposta

0

che cosa si intende per "valido" Se voi? vuoi controllare se l'espressione regolare corrisponde ad una particolare stringa, puoi usare RegExp::test() - restituirà true se c'è una corrispondenza, false se c'è no.

+0

Lo so, voglio solo controllare se il mio regex non è sbagliato. Ho bisogno di controllare che modello è ok – mihau

+0

voglio solo verificare se la sintassi regex è valida - Non testare espressioni regolari su esempio In Java può essere fatto da: try { Pattern.compile (userInputPattern); } catch (eccezione PatternSyntaxException) { System.err.println (exception.getDescription()); System.exit (1); } – mihau

+0

ok, probabilmente non si può fare - va bene - voglio solo sapere che può o non può essere fatto – mihau

1

Per quanto posso dire, stai cercando un'applicazione di test in cui puoi inserire un'espressione regolare e un valore e l'app ti dirà se c'è una corrispondenza o meno. Supponendo che è ciò che si vuole, questo codice lo farà per voi:

<?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

Non esagerato - non voglio confrontare regex e valore testuale - voglio controllare se questa espressione regolare è valido. Se qualcuno digita espressioni regolari non valide, ad esempio: "x {5, -3}" o "(((^^ $$$) //)" o qualcosa del genere, ho solo bisogno di comunicare a lui che questa espressione regolare non è valido - la sua espressione regolare non è corretta. – mihau

+0

Gotcha. Non vedo nulla nei documenti che suggerirebbe che RegEx lo supporta, sfortunatamente. –

Problemi correlati