簡體   English   中英

jQuery在變量中搜索文本?

[英]jQuery Search for Text in a Variable?

我有一個包含一些文本的變量,一些html,基本上可以是一個字符串。 我需要在變量中搜索特定字符串,以便在包含該變量時以不同方式處理該變量。 這是我要做的事情的片段,顯然不起作用:)

$.each(data.results,
   function(i, results) {
   var text = this.text                   
   var pattern = new RegExp("^[SEARCHTERM]$");
    if(pattern.test( text ) )
    alert(text);  //was hoping this would alert the SEARCHTERM if found...

您可以使用.indexOf()來執行搜索。

如果找不到該字符串,則返回-1 如果找到它,它將返回它所在的第一個從零開始的索引

var text = this.text;
var term = "SEARCHTERM";

if( text.indexOf( term ) != -1 )
    alert(term);

如果您希望完全匹配,使用^$似乎意味着,您可以只進行===比較。

var text = this.text;
var term = "SEARCHTERM";

if( text === term )
    alert(term);

編輯:根據您的評論,您想要完全匹配,但===不起作用,而indexOf()是。 如果有一些需要修剪的空白,有時就是這種情況。

嘗試使用jQuery的jQuery.trim()方法修剪空白。

var text = $.trim( this.text );
var term = "SEARCHTERM";

if( text === term )
    alert(term);

如果這不起作用,我建議將this.text記錄到控制台,看看它是否是您期望的值。

如果您使用正則表達式搜索子字符串,您可以找到如下匹配:

var match = text.match(pattern);
if(match) {
    alert(match[0]);
}

有關更多信息,請參閱.match()的文檔。

請注意,如果您嘗試搜索字符串"[SEARCHTERM]" (包含括號的搜索詞),則搜索方法將無效,因為括號在正則表達式中具有特殊含義。 相反,使用.indexOf()

var index = text.indexOf("[SEARCHTERM]");
if(index != -1) {
    alert("Search term found");
}

但是,如果您只是想找到完全匹配(除了搜索字符在您正在檢查的字符串中),您應該只比較字符串:

if(text == "[SEARCHTERM]") {
    alert("Search term found");
}

什么“不起作用”在這里意味着什么?

請注意,您應該對if語句使用大括號( {} )。 有些瀏覽器會讓你錯過它們,但是你應該把它們包括在內並保證一切。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM