【问题标题】:JQuery string contains check [duplicate]JQuery字符串包含检查[重复]
【发布时间】:2011-04-13 06:48:40
【问题描述】:

我需要检查一个字符串是否包含另一个字符串?

var str1 = "ABCDEFGHIJKLMNOP";
var str2 = "DEFG";

我用哪个函数来判断 str1 是否包含 str2?

【问题讨论】:

  • 不同解决方案的基准可以在这里找到:jsben.ch/#/RVYk7
  • @EscapeNetscape:很高兴看到基准链接。如果我将观察字符串更改为很长的UTF-8 多字节文本,结果会发生巨大变化吗?此外,结果随着观察字符串中子字符串位置的变化而变化。顺便说一句,你建议哪一个。

标签: javascript jquery string comparison contains


【解决方案1】:

你可以使用javascript的indexOf函数。

var str1 = "ABCDEFGHIJKLMNOP";
var str2 = "DEFG";
if(str1.indexOf(str2) != -1){
    console.log(str2 + " found");
}

【讨论】:

  • 这仅在子字符串完全匹配时有效,在“DEfG”周围无效,因为 f 是小写。
  • @RedSwan:你可以把字符串转换成大写或小写,然后进行比较,问题解决了。
  • @mulllhausen:现在是 2016 年,这个答案已经 6 年了,大多数网站已经停止支持 IE
  • @RocketHazmat:很公平。我之所以发表评论,是因为此页面上的任何答案都没有提到它,人们可能有兴趣知道。
【解决方案2】:
var str1 = "ABCDEFGHIJKLMNOP";
var str2 = "DEFG";

sttr1.search(str2);

它会返回匹配的位置,如果没有找到则返回-1。

【讨论】:

  • 很高兴注意到Array.prototype.search 将字符串隐式转换为可能无法给出所需结果的正则表达式。
  • 最后一行应该是:str1.search(str2);不是sttr1,恕我直言
【解决方案3】:

请尝试:

str1.contains(str2)

【讨论】:

  • CurrentPage.contains 不是函数
  • 这是因为 .contains() 是一个 jQuery 方法。
【解决方案4】:

我用过,

var text = "some/String"; text.includes("/") <-- returns bool; true if "/" exists in string, false otherwise.

【讨论】:

    【解决方案5】:

    如果您担心区分大小写,请更改大小写并比较字符串。

     if (stringvalue.toLocaleLowerCase().indexOf("mytexttocompare")!=-1)
            {
    
                alert("found");
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-10
      • 1970-01-01
      • 2012-04-21
      • 1970-01-01
      • 2021-08-17
      • 2020-09-20
      相关资源
      最近更新 更多