2011-08-23 52 views
5

tôi muốn kiểm tra trong Adobe AIR nếu có regex hợp lệ. Tôi đang tìm somtehing tương tự như ở đây: How to check if a given Regex is valid?AIR, Flex - cách kiểm tra xem regex có hợp lệ không


Tôi không muốn so sánh regex và văn bản có giá trị - i jus muốn kiểm tra xem regex này là hợp lệ. Nếu ai đó gõ regex không hợp lệ - ví dụ: "x {5, -3}" hoặc "(((^^ $$$) //)" hoặc một cái gì đó như thế này tôi chỉ cần giao tiếp với anh ấy rằng biểu thức chính quy này không phải là hợp lệ - biểu thức chính quy không thích hợp của nó

Trong Java nó có thể được thực hiện bằng cách:. [code]

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

[/ code]

+0

Nên có một regex cho điều này ... – Kodiak

+0

Thú vị, AS3 dường như không có chức năng này. –

Trả lời

0

Ý anh là gì bởi "hợp lệ" Nếu bạn? muốn kiểm tra xem cụm từ thông dụng có khớp với một chuỗi cụ thể hay không, bạn có thể sử dụng RegExp::test() - nó sẽ trả lại true nếu có khớp, false nếu có không.

+0

Tôi biết rằng - tôi chỉ muốn kiểm tra xem regex của tôi có sai không. Tôi cần phải kiểm tra mô hình đó là ok – mihau

+0

Tôi chỉ muốn kiểm tra xem cú pháp regex là hợp lệ - không kiểm tra regex trên ví dụ Trong Java nó có thể được thực hiện bằng cách: try { Pattern.compile (userInputPattern); } catch (PatternSyntaxException exception) { System.err.println (exception.getDescription()); System.exit (1); } – mihau

+0

ok, chắc chắn nó không thể được thực hiện - thats ok - tôi chỉ muốn biết rằng nó có thể hoặc không thể được thực hiện – mihau

1

Theo như tôi có thể nói, bạn đang tìm kiếm một ứng dụng thử nghiệm mà bạn có thể nhập cụm từ thông dụng và giá trị và ứng dụng sẽ cho bạn biết nếu có khớp hay không. Giả sử đó là những gì bạn muốn, mã này sẽ làm điều đó cho bạn:

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

Không exacly - tôi không muốn so sánh regex và text-value - i jus muốn kiểm tra nếu regex này là có hiệu lực. Nếu ai đó gõ regex không hợp lệ - ví dụ: "x {5, -3}" hoặc "(((^^ $$$) //)" hoặc một cái gì đó như thế này tôi chỉ cần liên lạc với anh ấy rằng biểu thức chính quy này không hợp lệ - biểu thức chính quy không thích hợp của nó – mihau

+0

Rất tiếc.Tôi không thấy bất kỳ điều gì trong các tài liệu gợi ý rằng RegEx hỗ trợ điều này, thật không may. –

1

Nếu bạn muốn dynamicaly xem kết quả của regexp của bạn trên một đầu vào nhất định, tôi đề nghị bạn công cụ trực tuyến này:

Flex 3 Regular Expression Explorer

Các vấn đề liên quan