我有一个包含一些文本的变量,一些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’s jQuery.trim()
method修剪空白.
var text = $.trim( this.text ); var term = "SEARCHTERM"; if( text === term ) alert(term);
如果这不起作用,我建议将this.text记录到控制台,看看它是否是您期望的值.