私は次のようなコードを持っています:
var valid = viewName.contains('/');
これは、Firefox ブラウザーで正常に動作します。しかし、クロムではそうですundefined
。どうしてこんなことに?クロムには文字列用のそのようなメソッドがないというのは本当ですか?
indexOf
の代わりに使用しても問題contains
ありませんか? すべてのブラウザでサポートされていますか?
私は次のようなコードを持っています:
var valid = viewName.contains('/');
これは、Firefox ブラウザーで正常に動作します。しかし、クロムではそうですundefined
。どうしてこんなことに?クロムには文字列用のそのようなメソッドがないというのは本当ですか?
indexOf
の代わりに使用しても問題contains
ありませんか? すべてのブラウザでサポートされていますか?
String.indexOf()
私が使用しているものであり、正常に動作します。
var strIndex = viewName.indexOf('/');
if(strIndex == -1) {
//string not found
} else {
//string found
}
ただし、contains()
関数が必要な場合に備えて、次のように追加できString
ます。
if(!('contains' in String.prototype)) {
String.prototype.contains = function(str, startIndex) {
return -1 !== String.prototype.indexOf.call(this, str, startIndex);
};
}
var valid = viewName.contains('/');
if(valid) {
//string found
} else {
//string not found
}
これに対するサポートは、Firefox と Chrome でもデフォルトで無効になっています。最新の回答を探してここにたどり着いた場合は、その理由と新しいメソッド名 ( String.includes
)をここで確認できます。
試す:
yourString.includes('searchString')
.contains は、現在 2016 年 7 月 22 日に最終更新されたドキュメントが示すように、FireFox 48 で完全に削除されました。ただし、関数 .includes は、以前に .contains が行っていたことを行います。
利点: .includes は Chrome でもサポートされています。
これをコメントとして投稿するつもりでしたが、未登録の人は完全な回答しか書くことができません. (フェイスパーム)