运动队名称的正则表达式

Regex for names of sport teams

本文关键字:正则表达式 运动队      更新时间:2023-09-26

我正在用JavaScript/jQuery做一个与体育相关的测验:http://jsfiddle.net/zVsxf/

我从这个网站的答案中拼凑了一些代码,它工作得相当好,但我有一个小问题。我不希望用户一输入"Red"就因为回答"Red Sox"answers"Red Wings"而获得积分。"Blue"(蓝调/蓝鸟/蓝夹克)和"White"(白袜队)也是如此。

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

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

根据ernie在评论中的建议,放弃正则表达式,简单地进行精确匹配,如下所示:

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

:

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

jsfiddle

使用toLowerCase()将正确答案和用户提交的内容都更改为小写,这样您就不必担心"Red Sox"answers"Red Sox"之间的差异

我认为如果球队是"Red Sox"并且他们键入"R",那么您上面的代码将返回true。我想我会检查球队名是否有多个单词,如果是,匹配将是第一个单词,而不是整个球队名。

类似:

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
}