Flash AS3 正则表达式

Flash AS3 RegExp

我不知道我是否可以使用 RegExp 对象来获得我想要的结果,如下所示: 我想测试一个与 correctAnswer 变量的一部分(不区分大小写)相匹配但不包含在 correctAnswer 变量中的任何其他世界的答案。

是否可以使用 RegExp 来避免任何未包含在模式中的词?

var correctAnswer:String = "Hello Dummy World";
var answer1:String = "hello world"; //should be a good answer
var answer2:String = "Hello dummy world"; //should be a good answer
var answer3:String = "Hello WRONG world";  //should be a wrong answer
var answer4:String = "Another String here";  //should be a wrong answer
function checkAnswer(a:String):String{
    var exp1:RegExp=/Hello|Dummy|World/ig;
    var r= a.replace(exp1,"OK");
    trace(a.search(exp1));
    return r
}
trace(checkAnswer(answer1)); // this should return "Hello Dummy World"
trace(checkAnswer(answer2)); // this should return "Hello Dummy World"
trace(checkAnswer(answer3)); // this should throw a wrong answer
trace(checkAnswer(answer4)); // this should throw a wrong answer

现在输出给我:

0
OK OK // in place of "Hello Dummy World"
0
OK OK OK // in place of "Hello Dummy World"
0
OK WRONG OK // in place of "bad answer"
-1
Another String here // in place of "bad answer"

抱歉我的英语不好,如果你能给我一些意见/建议或可能的答案,谢谢你。

也许在这种情况下我不应该使用 RegExp 对象? 我对此不熟悉,但如果这可行,这可能比测试所有可能情况的条件循环更好???

我有点糊涂了,希望问题描述清楚。

谢谢。

下面的代码将提取正确答案中的所有 "words" 并删除指定字符串中 任何出现的 ,这样修剪后就什么都不会了离开但不受欢迎!

var correctAnswer:String = "Hello Dummy World";

var answer1:String = "hello world"; // Should be a good answer
var answer2:String = "Hello dummy world"; // Should be a good answer
var answer3:String = "Hello WRONG world";  // Should be a wrong answer
var answer4:String = "Another String here";  // Should be a wrong answer

var tokenized:Array = correctAnswer.split(" ");
function checkAnswer(a:String):Boolean{
    var exp:RegExp = new RegExp(tokenized.join("|"), "ig");
    var correctKeywordsRemoved:String = a.replace(exp, "");
    var isCorrect:Boolean = trim(correctKeywordsRemoved).length == 0;
    trace("Your answer of '"+a+"' is "+(isCorrect ? "CORRECT :)" : "WRONG :("));
    return isCorrect;

    function trim(s:String):String {
        return s.replace(/^\s*|\s*$/gim, "");
    }
}

checkAnswer(answer1); // Your answer of 'hello world' is CORRECT :)
checkAnswer(answer2); // Your answer of 'Hello dummy world' is CORRECT :)
checkAnswer(answer3); // Your answer of 'Hello WRONG world' is WRONG :(
checkAnswer(answer4); // Your answer of 'Another String here' is WRONG :(