[英]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.