我正在构建一个简短的测验,用户需要输入首字母缩略词的含义。 这意味着我需要将用户输入的长字符串(通常是句子)与首字母缩略词进行比较。
我有一种感觉,我做得不对。对于我的测试,我正在复制粘贴正确的答案,以确保拼写正确,但我不断得到答案是错误的反馈。
我的问题是,我正确比较吗?
这是我的代码:
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!";
}
}
答案 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
希望这有帮助。