运动队名称的正则表达式
Regex for names of sport teams
我正在用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
}
相关文章:
- java.net和javascript之间正则表达式的差异
- Grunt匹配正则表达式
- 不同浏览器中的空白字符正则表达式行为
- 正则表达式在字符串中找到base64
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 调用正则表达式匹配的函数
- 使用正则表达式评估电子邮件地址时出现性能问题
- Javascript 正则表达式 : ^[^/s/]+[a-z]{1,}[0-9]*[-_]*[^/][
- JavaScript正则表达式文本与RegExp对象
- 正则表达式只允许 x 个整数
- 使用正则表达式将输入格式设置为单字符逗号、单字符逗号等
- 改进用于验证付款金额的正则表达式
- 正则表达式与数字中的第二个点匹配
- 键按正则表达式以查找具有负值的小数
- 一个正则表达式,用于从JS中的HTML标记中删除id、样式和类属性
- 将po-box javascript正则表达式转换为c#regex
- 在mongoose中使用正则表达式在对象数组中进行查询搜索
- 使用正则表达式捕获“”并分割成阵列
- 将这些正则表达式从javascript转换为Java
- 运动队名称的正则表达式