什么是MySQL的%LIKE%子句的JavaScript等价物?

TK1*_*123 12 javascript mysql

在MySQL中我使用like子句:

LIKE %some keyword% 
Run Code Online (Sandbox Code Playgroud)

执行数据库记录搜索.我可以用什么方式在JavaScript中进行类似的搜索?因此,如果用户输入类似的内容

ger
Run Code Online (Sandbox Code Playgroud)

它会显示出来

german shepard
Run Code Online (Sandbox Code Playgroud)

不能用:

str.search('ger');
Run Code Online (Sandbox Code Playgroud)

因为它似乎只匹配整个单词

Moh*_*sen 27

它不完全相同,%LIKE%但你可以使用indexOf().

var str = "Mohsen",
    st = "Moh";

if(str.indexOf(st) > -1) // true
Run Code Online (Sandbox Code Playgroud)

  • 您的插入符号向后。`>`不是`<` (2认同)
  • 天才:D ...我讨厌评论长度 (2认同)
  • 你抓住了我!呃我讨厌评论长度 (2认同)

NT3*_*3RP 5

我不确定你在什么上下文中使用like运算符(例如表单字段),但是你可能想要利用javascript的正则表达式对象.

一个简单的示例(在您的情况下,对于LIKE查询)可能如下所示:

var regex = /.*ger.*/
var matchesRegex = regex.test(yourString);
if (matchesRegex) {
    //do something
}
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用以下indexOf操作搜索字符串的发生率:

var matches = yourString.indexOf("ger") >= 0 ? true : false;
if (matches) {
    //do something
}
Run Code Online (Sandbox Code Playgroud)

  • 给定某些输入可能很容易弄乱正则表达式 (2认同)