この記事の例では、文字列にサブストリングが含まれているかどうかを判断するJSの方法について説明します。参照のためにそれを共有してください。詳細は次のとおりです。
毎日のフロントエンド開発では、文字列にサブストリングが含まれているかどうかを判断することがよくあります。ここでは、この要件に対するいくつかのソリューションを検討し、それらを正しく使用します。理想的には、私たちが探しているのは、目的に一致する方法(xがyが含まれている場合)で真またはfalseを返す方法です。
1。string.prototype.indexofおよびstring.prototype.lastindexof
これらの2つの方法は、おそらく私たちが考える最も簡単なことです。サブストリングが含まれている場合、0以上のインデックスを返します。それ以外の場合は-1を返します。これは理想的な状況を満たしていません。
コードコピーは次のとおりです。varstr = "私のブログ名は、フロントエンド開発とユーザーエクスペリエンスでベンジャミンに焦点を当てています」、
substr = "benjamin";
関数isContains(str、substr){
return str.indexof(subsstr)> = 0;
}
//真実
console.log(iscontains(str、substr));
2。string.prototype.search
string.prototype.searchメソッドについて考えました。検索方法のパラメーターは正規表現であるため、IndexOFの場合と同じです。
コードコピーは次のとおりです。varstr = "私のブログ名は、フロントエンド開発とユーザーエクスペリエンスでベンジャミンに焦点を当てています」、
substr = "benjamin";
関数isContains(str、substr){
new regexp(substr).test(str)を返します。
}
//真実
console.log(iscontains(str、substr));
このメソッドは、TrueまたはFalseを直接返すIndexofメソッドよりも優れており、メソッド名テストはIndexOFよりも意味的です。
3。string.prototype.contains
コードコピーは次のとおりです。varstr = "私のブログ名は、フロントエンド開発とユーザーエクスペリエンスでベンジャミンに焦点を当てています」、
substr = "benjamin";
関数isContains(str、substr){
return str.contains(substr);
}
//真実
console.log(iscontains(str、substr));
この方法は現在、Firefoxによってのみサポートされており、まだECMAScript 6ドラフトにあります。この方法は、上記の理想的な状況を満たしています。詳細については、ここをクリックしてください。 containsメソッドを使用する場合は、サードパーティライブラリString.jsを参照できます。ここをクリックしてstring.jsをダウンロードしてください。ソースコードの実装:
次のようにコードをコピーします:contains:function(ss){
this.s.indexof(ss)> = 0;
}、
他の方法は補足されます。 。 。
もちろん、パフォーマンスの問題に関しては、使用する方法はまだテストされています。興味のある友達は自分でそれをテストしたいと思うかもしれません。
この記事がみんなのJavaScriptプログラミングに役立つことを願っています。