ホームページ  >  記事  >  ウェブフロントエンド  >  jsのstartsWith関数はどのブラウザとも互換性がありません

jsのstartsWith関数はどのブラウザとも互換性がありません

高洛峰
高洛峰オリジナル
2017-03-01 15:38:151764ブラウズ

startsWith 関数は、js のテストを行うときに使用されますが、すべてのブラウザで利用できるわけではないため、一般にこの関数を書き直す必要があります。具体的な使用法を簡単にまとめると

一部のブラウザでは未定義であるため、次のように処理できます。

 if (typeof String.prototype.startsWith != 'function') {
  String.prototype.startsWith = function (prefix){
  return this.slice(0, prefix.length) === prefix;
  };
}

これは、ページがロードされた直後の関数に配置する必要があります。そうしないと機能しません。

直接書き換えることもありますが、私はそれをテストしていません:

String.prototype.startWith=function(str){ 
 if(str==null||str==""||this.length==0||str.length>this.length) 
  return false; 
 if(this.substr(0,str.length)==str) 
   return true; 
 else 
   return false; 
 return true; 
}

jsにはstartsWith関数とendWith関数がないという人もいますが、たとえそれらがあったとしてもです。宣言されていないため、一部のブラウザではまだ使用できますが、互換性のために書き直したいと考えています。

if (typeof String.prototype.endsWith != 'function') {
 String.prototype.endsWith = function(suffix) {
 return this.indexOf(suffix, this.length - suffix.length) !== -1;
 };
}

startWithとendWithエフェクト関数を実装するには正規表現を使用してください

String.prototype.startWith=function(str){
var reg=new RegExp("^"+str);
return reg.test(this);
}
//测试ok,直接使用str.endWith("abc")方式调用即可
String.prototype.endWith=function(str){
var reg=new RegExp(str+"$");
return reg.test(this);
}

上記のjsのstartsWith関数がどのブラウザにも互換性がないという問題は、すべてエディターによって共有されるコンテンツであることを願っています。参考にしていただければ幸いです。PHP 中国語 Web サイトをサポートしていただければ幸いです。

js の startWith 関数がどのブラウザとも互換性がない問題に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。