ホームページ > 記事 > ウェブフロントエンド > jsのstartsWith関数はどのブラウザとも互換性がありません
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 サイトに注目してください。