Подтвердить что ты не робот

Почему javascript содержит свойство не работает в браузере Chrome?

Почему javascript содержит свойство, которое не работает в браузере Chrome? Я пробовал, что Содержит Свойство в javascript. Он отлично работает в Mozilla Firefox Browser. Но он не работает в браузере Chrome. Как это исправить?

Ссылка: http://www.codingslover.com/2014/11/why-javascript-contains-property-is-not.html

var ClearFilterValue='family Schools';
if(ClearFilterValue.contains("family")== true) {
      alert('Success');
}
4b9b3361

Ответ 1

indexof возвращает позицию строки. Если он не найден, он будет возвращать -1:

var ClearFilterValue = 'family Schools';
alert(ClearFilterValue.indexOf("family") != -1);

Ответ 2

contains не поддерживается в Chrome, но вы можете использовать polyfill:

if (!String.prototype.contains) {
    String.prototype.contains = function(s) {
        return this.indexOf(s) > -1
    }
}
'potato'.contains('tat') // true
'potato'.contains('tot') // false

Ответ 3

На самом деле String.contains не поддерживается в Chrome в соответствии с MDN

Здесь можно решить проблему:

Polyfill

Вы можете легко polyfill использовать этот метод:

if (!('contains' in String.prototype)) String.prototype.contains = function (str, startIndex) {
    return -1 !== String.prototype.indexOf.call(this, str, startIndex);
};

var ClearFilterValue = 'family Schools';
if (ClearFilterValue.contains("family") == true) {
    alert('Success');
}

Демо: Скрипт

Ответ 4

Используйте свой собственный метод contains и переопределите метод firefox contains(). Поскольку этот метод широко используется, я имею в виду → (indexof).

String.prototype.contains = function(str) { return this.indexOf(str) != -1; };

Ответ 5

Вы должны понять, почему содержит не работает. На самом деле это два метода: содержит и включает, и оба имеют разные использование.

содержит:

Метод contains() возвращает логическое значение, указывающее, является ли node является потомком указанного node.

Потомком может быть ребенок, внук, правнук и т.д.

var span = document.getElementById("mySPAN");
var div = document.getElementById("myDIV").contains(span);

Результат div будет:

true

найдите jsfiddle

включает в себя:

Проверьте, включает ли строка в "мир":

var str = "Hello world, welcome to the universe.";
var n = str.includes("world");

Результат n будет:

true

Определение и использование

Метод includes() определяет, содержит ли строка символов указанной строки.

Этот метод возвращает true, если строка содержит символы и   false, если нет.

Примечание. Метод includes() чувствителен к регистру.

Найдите jsfiddle

И, наконец, вы также можете использовать метод indexOf для достижения того же Выход

var ClearFilterValue = 'family Schools';
alert(ClearFilterValue.indexOf("family") != -1);

Надеюсь, что это имеет смысл

Ответ 6

Я думаю, вы должны использовать indexOf

var ClearFilterValue = 'family Schools';
if(ClearFilterValue.indexOf("family") !== -1) {
      alert('Success');
}

Также не уверен, что вы должны сделать polyfill, так как браузер почти не поддерживает его https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/contains

Ни один из IE не поддерживает его, Chrome, по-видимому, начинается с 30, FF начинается с 19, и я сомневаюсь, что мобильные браузеры поддерживают его.