root/as3/Study/RegExpChecker/RegPanel.mxml

リビジョン 76, 2.7 kB (コミッタ: fladdict, コミット時期: 5 年 前)

--

Line 
1 <?xml version="1.0" encoding="utf-8"?>
2 <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%">
3         <mx:Script>
4                 <![CDATA[
5                         import mx.controls.Text;
6                        
7                         [Bindable]
8                         public var crntRegExp:RegExp
9                        
10                         private function init():void
11                         {
12                                
13                         }
14                        
15                         private function test():void
16                         {
17                                 //regExpから 後半部分を切り抜く gismx
18                                 var str:String = reg_txt.text;
19                                 var flag:String
20                                 var flagReg:RegExp = /\/[gismx]*$/i
21                                
22                                 //flag抽出
23                                 var result:Object = flagReg.exec(str)
24                                 if(result==null){
25                                         flag = ""
26                                 }else{
27                                         flag = result[0]
28                                         flag = flag.substr(1,flag.length-1)
29                                 }
30                                
31                                 //re抽出
32                                 var re:String
33                                 var reReg:RegExp = /^\/.*\//i
34                                 result = reReg.exec(str);
35                                 if(result==null){
36                                         re = ""
37                                 }else{
38                                         re = result[0]
39                                         re = re.substr(1,re.length-2)
40                                 }
41                                
42                                 //var flag:String = [0]
43                                 //flag = flag.substr(1,flag.length-1)
44                                 crntRegExp = new RegExp(re,flag)
45                                
46                                
47                                 result_txt.htmlText = ""
48                                 if(areaType_all_rb.selected==true){
49                                         validate(source_txt.text)
50                                 }else{
51                                         var lines:Array = source_txt.text.split("\r");
52                                         for(var i:Number=0; i<lines.length; i++){
53                                                 validate(lines[i]);
54                                         }
55                                 }
56                                
57                                
58                                
59                                
60                         }
61                        
62                         private function validate(str:String):void
63                         {
64                                 //var reg:RegExp = new RegExp(reg_txt.text,flag_txt.text);
65                                 var rep:String = "<font color='#ff0000'>$&</font>"
66                                 result_txt.htmlText += str.replace(crntRegExp,rep) + "\r"
67                         }
68                        
69                         private function validate2(str:String):void
70                         {
71                                
72                         }
73                        
74                         private function isRegExp(str:String):Boolean
75                         {
76                                 var reg:RegExp = /^\/.*\/[gismx]*$/i
77                                 return reg.test(str)
78                         }
79                 ]]>
80         </mx:Script>
81        
82         <mx:VBox width="100%" height="100%">
83                 <mx:Canvas width="100%">
84                 <mx:VBox width="100%">
85                         <mx:HBox width="100%">
86                         <mx:Label text="var reg:RegExp = "/>
87                         <mx:TextInput id="reg_txt" width="100%" text="/reg/i"/>
88                         <mx:Button click="test()" enabled="{isRegExp(reg_txt.text)}" label="Check"/>
89                 </mx:HBox>
90                 <mx:HBox width="100%">
91                         <mx:RadioButton id="areaType_line_rb" selected="true" groupName="areaType" label="Test for each line"/>
92                         <mx:RadioButton id="areaType_all_rb" groupName="areaType" label="Test for entire text"/>
93                 </mx:HBox>
94                 </mx:VBox>
95                 </mx:Canvas>
96                 <mx:HBox width="100%" height="100%">
97                         <mx:Panel width="100%" height="100%" title="Source">           
98                                 <mx:TextArea id="source_txt" width="100%" height="100%" text="imput sample text for reg matching test"/>
99                         </mx:Panel>
100                         <mx:Panel width="100%" height="100%" title="Result">
101                                 <mx:TextArea id="result_txt" editable="false" width="100%" height="100%" color="#c0c0c0"/>
102                         </mx:Panel>
103                 </mx:HBox>
104         </mx:VBox>
105 </mx:Canvas>
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。