ど素人から毛を生やす。<延>

endsWith()って超イイ感じだけどIEの野郎が非対応なんだって!

Web > javascript 2018年4月20日(最終更新:5年前)

2018年4月20日に作成されたページです。
情報が古かったり、僕が今以上のど素人だった頃の記事だったりする可能性があります。

どもです。

jsで後方一致が使いたいがために、endsWith()を使いました。
そうしましたところ、

( ゚Д゚)「endsWith()はIEが対応してないから、作り直して!」

(*'ω'*)「今時IEなんて対応して誰が得するんだよォオオオオオオ!!!」


//IEがendsWithサポート外だった系。
function IE_endsWith(target, str){
	var userAgent = window.navigator.userAgent.toLowerCase();
	if(userAgent.indexOf('msie') != -1 ||
	    userAgent.indexOf('trident') != -1 ) {
	    //IEがendsWithに対応していないので正規表現で代用。
		var reg = new RegExp("^.*" + str + "$");
		if(target.match(reg)){
			return true;
		}else{
			return false;
		}
	} else {
		//IE以外は普通にendsWith使う。
		return target.endsWith(str);
	}
}

これだと[target].endsWith(str)⇒endsWith([target], str)になるのが痛いですが、仕方ない。

あと今回要らなかったのでパラメータにも対応してないです。つら。

なんとか最小限の変更で回避。IEつら…

この記事は役に立ちましたか?
  • (`・ω・´) 役に立った (0)
  • (・∀・) 参考になった (1)
  • _(:3」∠)_ 面白かった (1)