【发布时间】:2009-04-28 23:29:55
【问题描述】:
在大多数语言(如 C#)中,例如给定一个字符串,您可以测试(布尔值)该字符串是否包含另一个字符串,基本上是该字符串的子集。
string x = test2;
if(x.contains("test"))
// do something
如何使用 Javascript/Jquery 以简单的方式做到这一点?
【问题讨论】:
标签: javascript jquery string
在大多数语言(如 C#)中,例如给定一个字符串,您可以测试(布尔值)该字符串是否包含另一个字符串,基本上是该字符串的子集。
string x = test2;
if(x.contains("test"))
// do something
如何使用 Javascript/Jquery 以简单的方式做到这一点?
【问题讨论】:
标签: javascript jquery string
这是通过 indexOf 完成的,但是如果没有找到它会返回 -1 而不是 False。
语法 string.indexOf(searchValue[, fromIndex])
参数 searchValue -
表示要搜索的值的字符串。 fromIndex -
在string 内开始搜索的位置。它可以是介于 0 和string 长度之间的任何整数。默认值为 0。
返回 string 中可以找到子字符串开头的第一个索引,如果 string 不包含子字符串的任何实例,则为 -1。
【讨论】:
indexOf 区分大小写。要进行不区分大小写的比较,我使用if(t.toUpperCase().indexOf(s.toUpperCase()) >= 0) { /* found */ }
正如 Paolo 和 cletus 所说,您可以使用 indexOf() 来实现。
值得一提的是它是一个 javascript 函数,而不是 jQuery 函数。
如果您想要一个 jQuery 函数来执行此操作,您可以使用它:
jQuery.fn.contains = function(txt) { return jQuery(this).indexOf(txt) >= 0; }
【讨论】:
jQuery(this) 返回一个 jQuery 对象,而不是字符串。 indexOf 在该 jQuery 对象中不存在。 this 也不是字符串,因此您需要知道要检查this 的哪一部分txt。也许return this.src.indexOf(txt) >= 0;?
indexOf 运算符适用于简单的字符串。如果您需要更复杂的东西,值得指出的是Javascript supports regular expressions。
【讨论】:
简单的包含也很有用,例如:
<div class="test">Handyman</div>
$(".test:contains('Handyman')").html("A Bussy man");
【讨论】:
一个工作示例,仅使用 indexOf 和 jQuery
// Add span tag, if not set
$(document).ready(function(c) {
$('div#content ul.tabs li a').each(function(c){
// Add span wrapper if not there already
if( $(this).html().indexOf('span') == -1){
$(this).html('<span class="tab">' + $(this).html() + '</span>');
}
});
});
DT
【讨论】:
尝试实现这个
function function1() {
var m = document.all.myDiv.contains(myB);
if (m == true){
m = "YES"
} else {
m = "NO"
}
alert(m)
}
【讨论】: