1

Недавно я писал логику в JavaScript, и я написал что-то вроде этогоЯвляется ли String.contains стандартной функцией в JavaScript?

var str="hello world"; 
 

 
if(str.contains("w")) 
 
    //do something 
 
else 
 
    //do anotherthing

Я думал, что это работает нормально, пока я не побежал страницу в Chrome. В Chrome у меня ошибка contains is not a function.

Хотя я избавилась от этого, изменив логику как

var str="hello world"; 
 
if(str.indexOf("w")!=-1) 
 
    //do something 
 
else 
 
    //do another thing

является contains не является стандартной функцией ECMAScript? Я могу видеть contains через intellisense в Firefox, но не в Chrome.

Во время тестирования их в разных браузерах я заметил в консоли,

String.subString/indexOf //not showing in chrome but works in Firefox

вместо str.substring/indexOf работает в хроме

не являются эти методы являются частью стандартного String объекта?

+3

'.includes' стандартное имя метода. '.contains' был предпочтительнее, но он сломал сайты, потому что некогда популярная библиотека (Mootools) определила метод' .contains' строки с другой семантикой. –

+0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes – CodingIntrigue

ответ

1

Обьясняется here. String.prototype.contains не входит в состав EsmaScript 5.1, который в настоящее время выпускается.

+1

С июня 2015 года [* ECMAScript ed 6 *] (http: // ecma-international .org/ecma-262/6.0/index.html) является текущим стандартом. ;-) – RobG

0

.contains() не является частью стандартной строки объектов

1

Это дубликат this вопроса.

Я отвечу здесь здесь для удобства.

Поддержка этого в Firefox и Chrome тоже отключена по умолчанию. Если вы приземляетесь здесь для поиска актуального ответа, вы можете узнать причину, по которой и имя нового метода (которое является String.includes) here.

Try:

yourString.includes ('SearchString')

Смежные вопросы