Строка jQuery содержит манипуляцию?
В большинстве языков, таких как С#, например, для строки, которую вы можете протестировать (boolean), если эта строка содержит другую строку, в основном подмножество этой строки.
string x = test2;
if(x.contains("test"))
// do something
Как я могу сделать это простым способом с помощью Javascript/JQuery?
Ответы
Ответ 1
Это делается с indexOf, однако он возвращает -1 вместо False, если не найден.
Синтаксис
string.indexOf(searchValue[, fromIndex])
Параметры
searchValue
-
Строка, представляющая значение для поиска.
fromIndex
-
Местоположение в string
, чтобы начать поиск. Это может быть любое целое число от 0 до длины string
. Значение по умолчанию: 0.
Возвращение
Первый индекс в string
, в котором можно найти начало подстроки, или -1, если string
не содержит экземпляров подстроки.
Ответ 2
Как сказал Паоло и Клитус, вы можете сделать это с помощью indexOf().
Допустим, это функция javascript, а не jQuery.
Если вы хотите, чтобы функция jQuery выполняла это, вы можете использовать ее:
jQuery.fn.contains = function(txt) { return jQuery(this).indexOf(txt) >= 0; }
Ответ 3
Оператор indexOf работает для простых строк. Если вам нужно что-то более сложное, стоит отметить, что Javascript поддерживает регулярные выражения.
Ответ 4
Простые сложения также могут быть полезны, например:
<div class="test">Handyman</div>
$(".test:contains('Handyman')").html("A Bussy man");
Ответ 5
Рабочий пример, используя только 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
Ответ 6
Попробуйте реализовать этот
function function1() {
var m = document.all.myDiv.contains(myB);
if (m == true){
m = "YES"
} else {
m = "NO"
}
alert(m)
}