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