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