The JavaScript and ActionScript codes are not doing exactly the same
thing. In your AS code, at a certain point you are doing the following
assignment:
_testValue = qualifier.toLowerCase()+ ",$";
This will result in _testValue = "true,$" which will make the test
isCurrency.test(_testValue) return false which is right because
isCurrency's regex is /^, ?\$/.


--- In flexcoders@yahoogroups.com, "jwebbsuccess" <[EMAIL PROTECTED]> wrote:
>
> I have a regular expression that works in JavaScript and does not work
> in ActionScript 3, even though both languages supposedly use the
> ECMAScript standard for regular expressions.  I need the expression to
> return true when ever it tests the two strings below:
> 
> true,$
> true, $
> 
> I need the expression to return false whenever the string is not the
> same as one of the two above.
> 
> I've attached the HTML that demonstrates that the regular expressions
> work in JavaScript.  Can you modify the same expressions in the Flex
> code, provided below, to produce the same result?
> 
> Thanks.
> 
> ---------------------------------------------------------------
> <html>
> <head>
> <style type="text/css">
> #doc {background-color:#EFEFEF;text-align:center;}
> #testBlock
>
{background-color:#FFFFFF;text-align:left;width:600px;height:500px;margin:
> 0 auto;border:1px solid #FF9900;padding:0 20px;}
> .regexp {color:#FF0000;}
> .testval {color:#00CC00;}
> </style>
> </head>
> <body id="doc">
> <div id="testBlock">
>   <h1 id="test1"></h1>
>   <h1 id="test2"></h1>
>   <h1 id="testValue"></h1>
>   <p>The only two true values should be "true,$" and "true, $";
> everything else should be false.</p>
>   <script type="text/javascript">
>               
>               //TEST YOUR REGULAR EXPRESSIONS HERE.
>                 var re1 = /^true\b(.*)$/;
>                 var re2 = /^, ?\$/;
>                 var str = "true,$"; 
>  
>               //THE VALUES USED IN YOUR TESTS WILL APPEAR IN THE PAGE...
>                 document.getElementById( "test1" ).innerHTML = "Regular 
> Expression
> 1: <span class='regexp'>" + re1 + "</span>";
>                 document.getElementById( "test2" ).innerHTML = "Regular 
> Expression
> 1: <span class='regexp'>" + re2 + "</span>";
>                 document.getElementById( "testValue" ).innerHTML = "Test 
> Value:
> <span class='testval'>" + str + "</span>";
>                 
>                 if ( ( resultArray = re1.exec( str ) ) != null )
>                 {
>                   alert( "Test 1 successful" );
>                   if ( re2.test( resultArray[ 1 ] ) )
>                   {
>                       alert( "Test 2 successful" );
>                   }
>                       else
>                       {
>                               alert( "Test 2 failed" );       
>                       }
>                 }
>               </script>
> </div>
> </body>
> </html>
> 
> ---------------------------------------------------------------
> 
> <?xml version="1.0"?>
> <!-- wrapper/GetURLInfo.mxml -->
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
> creationComplete="runRegExpTest( event )">
> <mx:Script>
> <![CDATA[
> import mx.events.FlexEvent;
> import mx.controls.Alert;
> 
> [Bindable] private var _test1:String = "";
> [Bindable] private var _test2:String = "";
> [Bindable] private var _testValue:String = "";
> 
> private function runRegExpTest( e:FlexEvent ):void
> {
>       var isTrue:RegExp =/^true\b(.*)$/;
>       var isCurrency:RegExp =/^, ?\$/;
>       var qualifier:String = "TRUE";
>       _test1 = isTrue.toString();
>       _test2 = isCurrency.toString();
>       var msg1:String;
>       var msg2:String;
>       
>       if ( isTrue.test( qualifier.toLowerCase() ) )
>       {                              
>             _testValue = qualifier.toLowerCase()+ ",$";
>             msg1 = "The qualifier is: " + qualifier.toLowerCase() + ",
> the test value is ( " + _testValue + " ) and returns: " +
> isCurrency.test( _testValue ).toString();
>             trace( msg1 );
>             Alert.show( msg1 );
>             if ( isCurrency.test( _testValue ) )
>             {
>                   msg2 = "The test is SUCCESSFUL!";
>                   trace( msg2 );
>                   Alert.show( msg2 );
>             }
>             else
>             {
>                   msg2 = "The 'isCurrency' RegExp is UNSUCCESSFUL";
>                   trace( msg2 );
>                   Alert.show( msg2 );
>             }
>       }
> }
> ]]>
> </mx:Script>
> <mx:Form color="#FCFCFC" cornerRadius="10" borderStyle="outset"
> backgroundColor="#FAF7F7">
>       <mx:FormItem label="'isTrue' regular expression test:" 
> fontSize="18" color="#000000">
>             <mx:Label text="{ _test1 }" fontSize="18" color="#BF5100"
> fontWeight="bold"/>
>       </mx:FormItem>
>       <mx:FormItem label="'isCurrency' regular expression test:"
> fontSize="18" color="#000000">
>             <mx:Label text="{ _test2 }" fontSize="18" color="#BF5100"
> fontWeight="bold"/>
>       </mx:FormItem>
>       <mx:FormItem label="'test value is: " fontSize="18"
color="#000000">
>             <mx:Label text="{ _testValue }" fontSize="18"
> color="#BF5100" fontWeight="bold"/>
>       </mx:FormItem>
> </mx:Form>
> </mx:Application>
>


Reply via email to