Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 运动队名称的正则表达式_Javascript_Jquery_Regex - Fatal编程技术网

Javascript 运动队名称的正则表达式

Javascript 运动队名称的正则表达式,javascript,jquery,regex,Javascript,Jquery,Regex,我正在用JavaScript/jQuery做一个与体育相关的测试: 我从这个网站的答案中拼凑了一些代码,效果相当不错,但我有一个小问题。我不希望用户在回答红袜队和红翼队的问题时,一输入“Red”就马上获得积分。“Blue”(蓝色/蓝色鸟/蓝色夹克)和“White”(白色袜队)也是如此 我只需要一个正则表达式,如果它存在的话,或者关于这一部分的一些建议 if (current_name.match(RegExp('\\b' + entry + '\\b', 'i'))) 我想如果球队是“红袜队”

我正在用JavaScript/jQuery做一个与体育相关的测试:

我从这个网站的答案中拼凑了一些代码,效果相当不错,但我有一个小问题。我不希望用户在回答红袜队和红翼队的问题时,一输入“Red”就马上获得积分。“Blue”(蓝色/蓝色鸟/蓝色夹克)和“White”(白色袜队)也是如此

我只需要一个正则表达式,如果它存在的话,或者关于这一部分的一些建议

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

我想如果球队是“红袜队”,并且他们输入“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
}

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

改变

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




使用
toLowerCase()
更改正确答案和用户提交的内容,使您不必担心“Red Sox”和“Red Sox”之间的区别。

您的问题不太清楚……我不确定您为什么要使用regex?为什么不要求精确匹配(可能是两个小写)?因为他在使用jQuery,所以您也可以在其中添加一个;)谢谢Dryden的帮助。
if (current_name.toLowerCase() == entry.toLowerCase())