この記事の例では、js が文字列に部分文字列が含まれているかどうかを判断する方法を説明します。皆さんの参考に共有してください。詳細は以下の通りです。
日常のフロントエンド開発では、文字列に特定の部分文字列が含まれているかどうかを判断するという問題によく遭遇します。ここでは、この要件を解決し、それらを正しく使用するためのいくつかの方法を検討します。理想的には、私たちが探しているのは、目的に一致し (x に y が含まれている場合)、true または false を返すメソッドです。
1. String.prototype.indexOf および String.prototype.lastIndexOf
これら 2 つのメソッドは、部分文字列が含まれている場合は 0 以上のインデックスを返し、それ以外の場合は -1 を返しますが、これは理想的な状況を満たしません。
var str = "私のブログ名は Benjamin-Focus onfront-end です開発とユーザーエクスペリエンス"、
substr = "ベンジャミン";
関数 isContains(str, substr) {
戻り値 str.indexOf(substr) >= 0;
}
//本当
console.log(isContains(str, substr));
2. 文字列.prototype.search
String.prototype.searchメソッドを考えました。検索メソッドのパラメータは正規表現なのでindexOfと同じです。
var str = "私のブログ名は Benjamin-Focus onfront-end です開発とユーザーエクスペリエンス"、
substr = "ベンジャミン";
関数 isContains(str, substr) {
新しい RegExp(substr).test(str);
を返します
}
//本当
console.log(isContains(str, substr));
このメソッドは、indexOf メソッドよりも優れています。このメソッドは直接 true または false を返します。同時に、メソッド名のテストは、indexOf よりもセマンティックです。
3. String.prototype.contains
var str = "私のブログ名は Benjamin-Focus on ですフロントエンド開発とユーザーエクスペリエンス」、
substr = "ベンジャミン";
関数 isContains(str, substr) {
str.contains(substr);
を返します
}
//本当
console.log(isContains(str, substr));
このメソッドは現在 Firefox でのみサポートされており、まだ ECMAScript 6 ドラフトにあります。この方法は、上記の理想的な状況を満たします。詳細については
ここをクリックしてください。 contains メソッドを使用する場合は、サードパーティ ライブラリ string.js を参照してください。ここをクリックして、このサイトから string.js
をダウンロードしてください。ソースコードの実装:
には次のものが含まれます: function(ss) {
this.s.indexOf(ss) >= 0;
を返す
}、
他のメソッドも追加される予定です。 。 。
もちろん、パフォーマンスの問題に関しては、どの方法がより速いかはまだテストされていません。興味のある友人は自分で試してみるとよいでしょう。
この記事が皆様の JavaScript プログラミング設計に役立つことを願っています。