【问题标题】:Using .match() for case insensitive words对不区分大小写的单词使用 .match()
【发布时间】:2016-11-28 03:30:00
【问题描述】:

目前我需要将用户输入与我使用过的现有值进行匹配,

 return book.id.match(keyword);

现在我需要使关键字匹配不区分大小写,例如 Bookt 和 BOOkT 也应该匹配。我尝试使用正则表达式,但它不允许我将“关键字”变量传递给正则表达式。知道如何简单地做到这一点吗?

【问题讨论】:

  • .match(new RegExp(keyword, 'i')) 假设keyword 中没有特殊符号。
  • book.id.toLowerCase().includes(keyword.toLowerCase())

标签: javascript jquery match


【解决方案1】:

您可以使用匹配正则表达式作为参数。

var string = "BoOkt";
var result = string.match(/bookt/i);

if (result){
    alert('match');
}

使用正则表达式的替代版本是indexOf。如果您的用户输入包含正则表达式元字符并且使用match 将是您的另一个问题。

var match = 'awesome';
var string = 'stackoverflow is AweSoMe place';

if (string.toLowerCase().indexOf(match) != -1){
    alert('match')
}

【讨论】:

  • 请注意,OP 的代码不显示任何上下文;如果.match() 返回的数组被用于某事,那么切换到.indexOf() 将不起作用。
猜你喜欢
  • 2015-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-18
相关资源
最近更新 更多