2011-08-23 10 views
5

Quiero registrarme en Adobe AIR si la expresión regular es válida. Busco somtehing similar como aquí: How to check if a given Regex is valid?AIR, Flex: cómo comprobar si la expresión regular es válida


no quiero comparar expresiones regulares y el texto del valor - i jus quieren comprobar si esta expresión regular es válido. Si alguien escribe regex no válido, por ejemplo: "x {5, -3}" o "(((^^ $$$) //)" o algo así, solo necesito comunicarle que esta expresión regular no es válida - no es adecuada expresión regular

En Java se puede hacer por:. [code]

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

[/ code]

+0

Debe haber una expresión regular para esto ... – Kodiak

+0

Interesante, AS3 no parece tener esta funcionalidad. –

Respuesta

0

¿Qué quiere decir con "válida" Si? desea comprobar si la expresión regular coincide con una cadena en particular, puede usar RegExp::test() - devolverá true si hay una coincidencia, false si existe Nuevo Testamento.

+0

Lo sé, solo quiero comprobar si mi expresión regular no está mal. Tengo que comprobar que el patrón está bien – mihau

+0

sólo quiero comprobar si la sintaxis de expresiones regulares es válida - no probar expresiones regulares en el ejemplo En Java se puede hacer por: try { Pattern.compile (userInputPattern); } catch (excepción PatternSyntaxException) { System.err.println (exception.getDescription()); System.exit (1); } – mihau

+0

ok, probrably no se puede hacer - eso está bien - solo quiero saber que se puede o no se puede hacer – mihau

1

Por lo que puedo decir, usted está buscando una aplicación de prueba en la que puede introducir una expresión regular y un valor y la aplicación le dirá si hay una coincidencia o no. Suponiendo que es lo que desea, este código lo hará por usted:

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

No exactamente - no quiero comparar expresiones regulares y valores de texto - yo solo quiero comprobar si esta expresión regular es válido. Si alguien escribe una expresión regular no válida, por ejemplo: "x {5, -3}" o "(((^^ $$$) //)" o algo así, solo necesito comunicarle que esta expresión regular no es válido - no es la expresión regular adecuada. – mihau

+0

Gotcha. No veo nada en los documentos que sugiera que RegEx lo apoye, desafortunadamente. –

Cuestiones relacionadas