正则表达运动队的名字

时间:2013-06-06 23:16:18

标签: javascript jquery regex

我在JavaScript / jQuery中进行与体育相关的测验:http://jsfiddle.net/zVsxf/

我已经从本网站的答案中拼凑了一些代码并且它工作得很好,但我遇到了一个小问题。我不希望用户因回答红袜队而获得荣誉。一旦他/她进入红色"红色翅膀。与" Blue"相同(Blues / Blue Jays / Blue Jackets)和" White" (白袜队)。

我只需要一个正则表达式,如果它存在,或者就这一部分提出一些建议。这是我到目前为止最相关的代码(在jsFiddle链接中,它位于第56行:

if (current_name.match(RegExp('\\b' + entry + '\\b', 'i')))

2 个答案:

答案 0 :(得分:1)

Per ernie在评论中提出的建议,抛弃你的正则表达式并简单地完成一个完全匹配:

更改

if (current_name.match(RegExp('\\b' + entry + '\\b', 'i')))

为:

if (current_name.toLowerCase() == entry.toLowerCase())

jsfiddle

使用toLowerCase()更改正确答案和用户提交给所有小写字母的内容,这样您就不必担心“Red Sox”和“red sox”之间的区别

答案 1 :(得分:0)

我认为如果球队是" Red Sox"他们输入" R"。我想我会检查团队名称是否有多个单词,如果是,那么匹配将是第一个单词而不是整个团队名称。

类似的东西:

var match_compare;
var index = current_name.indexOf(' ');
if(index >= 0) {
    match_compare = current_name.substring(0, index);
}
else {
    match_compare = current_name;
}

// Then actually compare. I think they should be the exact same, just maybe 
// ignore case
if(match_compare.toLowerCase() == entry.toLowerCase()) {
    // Handle match
}