类似于 SQL“like”的 JavaScript 运算符 [重复]

Posted

技术标签:

【中文标题】类似于 SQL“like”的 JavaScript 运算符 [重复]【英文标题】:JavaScript operator similar to SQL "like" [duplicate] 【发布时间】:2009-08-22 05:41:26 【问题描述】:

可能重复:Emulating SQL LIKE in javascript

JavaScript 中是否有类似于 SQL 中的like 运算符的运算符?解释和例子表示赞赏。

【问题讨论】:

***.com/questions/1314045/… 【参考方案1】:

您可以使用regular expressions in Javascript 对字符串进行模式匹配。

例如:

var s = "hello world!";
if (s.match(/hello.*/)) 
  // do something

match() 测试很像 SQL 中的WHERE s LIKE 'hello%'

【讨论】:

这里最好使用test(顺便说一下,应该更快),因为不需要实际的匹配结果。 绝对是,在这里使用/regex/.test(s),除非你想对匹配做点什么-***.com/a/10940138/1128978【参考方案2】:

没有。

您要使用:.indexOf("foo"),然后检查索引。如果 >= 0,则包含该字符串。

【讨论】:

如果大小写不同,就不行了。您需要使用:myString.toLowerCase().indexOf("foo") 整数上首先使用toString()myInteger.toString().indexOf(value) > -1.【参考方案3】:

使用字符串对象匹配方法:

// Match a string that ends with abc, similar to LIKE '%abc'
if (theString.match(/^.*abc$/)) 
 
    /*Match found */


// Match a string that starts with abc, similar to LIKE 'abc%'
if (theString.match(/^abc.*$/)) 
 
    /*Match found */

【讨论】:

如何根据子字符串匹配字符串,例如如果 str="john edward" 那么我如何使用该函数在两种情况下都返回 true ,例如如果 str 包含 john => true ,如果str 包含 edward => 也应该返回 true。 谢谢。它非常有帮助。【参考方案4】:

您可以检查String.match() 或String.indexOf() 方法。

【讨论】:

【参考方案5】:

不,没有,但您可以查看indexOf 作为开发自己的起点,和/或查看regular expressions。熟悉JavaScript string functions 是个好主意。

编辑:这已经回答过:

Emulating SQL LIKE in JavaScript

【讨论】:

【参考方案6】:

不,没有。

这里列出了比较运算符的列表。

Comparison Operators

根据您的要求,最佳选择是regular expressions。

【讨论】:

请提供一些带有示例的高质量代码,而不是简短的是或否的答案,避免将来可能离线的链接。

以上是关于类似于 SQL“like”的 JavaScript 运算符 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Pandas 文本匹配像 SQL 的 LIKE?

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

Lambda表达式Contains方法(等价于SQL语句中的like)使用注意事项

对mongodb中的数字进行sql'like'操作

sql

类似于 LIKE 'a%' 的 FTS 查询?