Как я могу дать подтверждение пароля в flex - PullRequest
1 голос
/ 12 октября 2009

Я хочу валидатор для ввода текста пароля.

  • Как минимум одна заглавная буква
  • Хотя бы один числовой символ
  • Как минимум один специальный символ, такой как @, #, $ и т. Д.

должен быть там в пароле, как я могу дать его в скрипте действия или mxml.please помочь мне Спасибо.

1 Ответ

3 голосов
/ 12 октября 2009

Вы можете сделать это с помощью регулярных выражений.

private function isValidPassword(value:String):Boolean
{
    if(value.length < minLength)
        return false;
    var regexArray:Array = [/[A-Z]/, /\d/, /[a-z]/, /[^\w]/];
    var flag:Boolean = true;
    var result:Object;
    for(var i:Number = 0; i < regexArray.length; i++)
    {
        result = RegExp(regexArray[i]).exec(value);
        if(!result)
        {
            trace(value + " fails test " + i);
            return false;
        }
    }
    return true;
}
  1. /A-Z/ проверяет наличие заглавной буквы.
  2. /a-z/ проверяет наличие строчной буквы.
  3. /\d/ проверяет число
  4. /[^\w]/ проверяет наличие несловесного символа. Обратите внимание, что регулярное выражение обрабатывает _ как символ слова. Таким образом _ не будет считаться символом.

Обновление: добавьте /[^\w]|_/ в массив регулярных выражений, чтобы считать _ символом.

Обновление: вот гибкое приложение, использующее RegExpValidator

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" 
  xmlns:local="*" creationComplete="create();">

  <mx:TextInput id="textInput"/>

  <mx:Button id="btn" label="Submit" click="validate();"/>

  <mx:RegExpValidator id="reg1" source="{textInput}" expression="[a-z]" 
    noMatchError="At least one lower case char" invalid="onInvalid(event)" 
    property="text"/>

  <mx:RegExpValidator id="reg2" source="{textInput}" expression="[A-Z]" 
    noMatchError="At least one upper case char" invalid="onInvalid(event)" 
    property="text"/>

  <mx:RegExpValidator id="reg3" source="{textInput}" expression="\d" 
    noMatchError="At least one number" invalid="onInvalid(event)" 
    property="text"/>

  <mx:RegExpValidator id="reg4" source="{textInput}" expression="[^\w]|_" 
    noMatchError="At least one symbol char" invalid="onInvalid(event)" 
    property="text"/>

  <mx:Script>
    <![CDATA[
      import mx.events.ValidationResultEvent;

      private var validators:Array;

      public function create():void
      {
        validators = [reg1, reg2, reg3, reg4];
      }
      private function validate():void
      {
        for(var i:Number = 0; i < validators.length; i++)
          if(RegExpValidator(validators[i]).validate().type != ValidationResultEvent.VALID)
            return;
        //valid
        trace(textInput.text + " is valid");
      }
      private function onInvalid(e:Event):void
      {
        var validator:RegExpValidator = e.target as RegExpValidator;
        trace(validator.noMatchError);
      }

    ]]>
  </mx:Script>
</mx:Application>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...