比较AS3中的句子(字符串)

时间:2009-10-08 09:22:40

标签: string actionscript-3

我正在构建一个简短的测验,用户需要输入首字母缩略词的含义。 这意味着我需要将用户输入的长字符串(通常是句子)与首字母缩略词进行比较。

我有一种感觉,我做得不对。对于我的测试,我正在复制粘贴正确的答案,以确保拼写正确,但我不断得到答案是错误的反馈。

我的问题是,我正确比较吗?

这是我的代码:

 var arrQuestions:Array = [["LOL","Laughing Out Loud"], ["OMG", "Oh My God"], ["BTW", "By The Way"]];
var i:Number=0;

    function setup():void {
     quiztext_txt.text = arrQuestions[i][0];
     trace(quiztext_txt.text);
     trace(arrQuestions[i][1]);
     check_btn.addEventListener(MouseEvent.CLICK, clickHandler);


    }//End of Setup()

    setup();

    function clickHandler(event:MouseEvent):void {

     var givenString:String;
     var inputString:String;
     inputString = userinput_txt.text;
     givenString = arrQuestions[i][1];
     if (inputString == givenString) {
      feedback_txt.text = "Correct!";


     } else {
      feedback_txt.text = "Wrong!";
     }
    }

3 个答案:

答案 0 :(得分:0)

用户输入之前/之后是否有空白? i的值是否会发生变化?

else 
{
  //what does it trace?
  trace("given answer: " + inputString + "\ncorrect answer: " + givenString);
  feedback_txt.text = "Wrong!";
}

答案 1 :(得分:0)

尝试清除设置功能中的文本字段,如下所示:

   function setup():void
   {
     userinput_txt.text = "";
     quiztext_txt.text = arrQuestions[i][0];
     trace(quiztext_txt.text);
     trace(arrQuestions[i][1]);
     check_btn.addEventListener(MouseEvent.CLICK, clickHandler);


    }//End of Setup()

答案 2 :(得分:0)

对于任何类型的字符串匹配,我强烈建议您查看正则表达式(RegExp)。在下面写的正则表达式中我匹配每个单词,然后我说[ ]+表示“至少有一个或多个空格”,然后在表达式的末尾我用/gi表示表达式不区分大小写。在上面的代码中,如果我输入小写的短语不匹配,快速解决这个问题就是使用这个if(inputString.toLowerCase() == givenString.toLowerCase())来捕获它。下面是正则表达式的例子:

// testString could easily equal myTextField.text
var testString:String = "lauGHing      OuT       loUD";

// you could store each one in an array, as you were before
var regEx:RegExp = /laughing[ ]+out[ ]+loud/gi

trace( regEx.test( testString ) ); //returns true,test() returns a Boolean

希望这有帮助。