类似于 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 运算符 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
MySQL 的 %LIKE% 子句的 JavaScript 等价物是啥?