.includes ()가 Internet Explorer에서 작동하지 않음
이 코드는 Internet Explorer에서 작동하지 않습니다. 대안이 있습니까?
"abcde".includes("cd")
String.prototype.includes
작성시 Internet Explorer (또는 Opera)에서 지원되지 않습니다.
대신 String.prototype.indexOf
. #indexOf
문자열에있는 경우 하위 문자열의 첫 번째 문자의 인덱스를 반환하고 그렇지 않으면을 반환합니다 -1
. (배열과 매우 유사 함)
var myString = 'this is my string';
myString.indexOf('string');
// -> 11
myString.indexOf('hello');
// -> -1
MDN을위한 polyfill가 includes
사용을 indexOf
: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/includes#Polyfill
편집 : 오페라가 지원하는 includes
현재의 버전 (28) .
편집 2 : Edge의 현재 버전은 방법을 지원합니다. (2019 년 기준)
아니면 그냥 자바 스크립트 파일에 넣고 좋은 하루 보내세요 :)
String.prototype.includes = function (str) {
var returnValue = false;
if (this.indexOf(str) !== -1) {
returnValue = true;
}
return returnValue;
}
includes ()는 대부분의 브라우저에서 지원되지 않습니다. 귀하의 옵션은
-polyfill from MDN https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/includes
또는 사용
-indexof ()
var str = "abcde";
var n = str.indexOf("cd");
n = 2를줍니다.
이것은 널리 지원됩니다.
이것은 더 좋고 더 짧을 수 있습니다.
function stringIncludes(a, b) {
return a.indexOf(b) >= 0;
}
문제:
Internet Explorer에서 아래 (솔루션없이) 를 실행 하고 결과를 확인하십시오.
console.log("abcde".includes("cd"));
해결책:
이제 솔루션 아래에서 실행하고 결과를 확인하십시오.
if (!String.prototype.includes) {//To check browser supports or not
String.prototype.includes = function (str) {//If not supported, then define the method
return this.indexOf(str) !== -1;
}
}
console.log("abcde".includes("cd"));
Angular 5에서 작업 할 때도 같은 문제가있었습니다. 직접 polyfill을 작성하지 않고 직접 작동하게하려면 polyfills.ts 파일에 다음 줄을 추가하면됩니다.
import "core-js/es7/array"
또한 tsconfig.json
lib 섹션이 관련 될 수 있습니다.
"lib": [
"es2017",
"dom"
],
반응 :
import 'react-app-polyfill/ie11';
import 'core-js/es5';
import 'core-js/es6';
import 'core-js/es7';
에 대한 문제 해결-includes (), find () 등 ..
If you want to keep using the Array.prototype.include()
in javascript you can use this script: github-script-ie-include That converts automatically the include() to the match() function if it detects IE.
Other option is using always thestring.match(Regex(expression))
You can do the same with !! and ~ operators
var myString = 'this is my string';
!!~myString.indexOf('string');
// -> true
!!~myString.indexOf('hello');
// -> false
here's the explanation of the two operators (!! and ~ )
What is the !! (not not) operator in JavaScript?
https://www.joezimjs.com/javascript/great-mystery-of-the-tilde/
It works for me:
function stringIncludes(a, b) {
return a.indexOf(b) !== -1;
}
참고URL : https://stackoverflow.com/questions/36574351/includes-not-working-in-internet-explorer
'programing' 카테고리의 다른 글
'const'한정자로 정적 멤버 함수를 만들 수없는 이유 (0) | 2020.10.12 |
---|---|
파이썬에서 두 개의 정렬 된 목록을 어떻게 비교할 수 있습니까? (0) | 2020.10.12 |
Jasmine에서 개체 평등 확인 (0) | 2020.10.11 |
VideoView를 사용한 원활한 비디오 루프 (0) | 2020.10.11 |
모든 테이블 삭제 명령 (0) | 2020.10.11 |