【问题标题】:JavaScript operator similar to SQL "like" [duplicate]类似于 SQL“like”的 JavaScript 运算符 [重复]
【发布时间】:2023-03-27 17:39:01
【问题描述】:

可能重复:
Emulating SQL LIKE in JavaScript

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

【问题讨论】:

标签: javascript


【解决方案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),除非你想对匹配做点什么-stackoverflow.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

      【讨论】:

      • 请提供一些带有示例的高质量代码,而不是简短的是或否的答案,避免将来可能离线的链接。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-27
      • 2012-12-15
      • 1970-01-01
      • 1970-01-01
      • 2012-01-04
      相关资源
      最近更新 更多