2012-07-31 44 views
4

我有一个像如何检查是否字符串出现在变量的jQuery

var myVar = "The man is running"

pattern = "run"

我想通过jQuery检查的变量,如果它conatins字“跑”

Like

if($(myVar).(:contains(pattern))) 
return true 

这是可能的

+2

我觉得我应该建议您查看(http://stackoverflow.com/questions/2490590/what-is-the-difference-between-jquery-and-javascript的[JavaScript和jQuery的区别] )。在这里你可以阅读[JavaScript](https://developer.mozilla.org/en/About_JavaScript#What_is_JavaScript.3F)。在这里你可以阅读[jQuery](http://docs.jquery.com/How_jQuery_Works)。 – Zhihao 2012-07-31 03:56:37

+0

检查: @ john110016 检查http://stackoverflow.com/questions/4581625/jquery-search-for-text-in-a-variable 酷似您的问题 – 2012-07-31 03:58:56

回答

17

RegExp选项...只是因为...注册表。

var pattern = /run/; 

//returns true or false... 
var exists = pattern.test(myVar); 

if(exists) 
    //true statement, do whatever 
}else{ 
    //false statement..do whatever 
} 
9

你会使用Javascript方法.indexOf()来做到这一点。如果你想测试DOM元素的文本是否包含了模式,你可以使用这个:

if($(myVar).text().indexOf(pattern) != -1) 
    return true; 

如果变量myVar不是一个选择的字符串,你不应该在jQuery的把它包功能,但是。相反,你会使用这个:

if(myVar.indexOf(pattern) != -1) 
    return true; 
+0

短一点'如果(〜! myVar.indexOf(pattern))'... – elclanrs 2012-07-31 04:05:44

+0

谢谢兄弟..它的工作。 – 2015-02-18 08:23:02

0

你不需要这个jQuery。只需检查字符串的索引。

if (myVar.indexOf(pattern) !== -1) { ... }

0

正则表达式?

var hasRun = /run/i.test(myVar) // case insensitive 
+0

虽然这样一个简单的操作,正则表达式有不必要的开销。 – jeff 2012-07-31 04:00:22

+0

是的,它可能比'indexOf'慢,但是一个选项仍然可读,至少IMO。 – elclanrs 2012-07-31 04:04:45

相关问题