23

文字列の一部を比較するにはどうすればよいですか?たとえば、文字列Aが文字列Bの一部であるかどうかを比較したい場合は、次のことを確認したいと思います。いつstring A = "abcd"string B = "abcdef"trueを返す必要があるか。JavaScriptでそれを行うにはどうすればよいですか?使用する場合、およびパラメーターsubstring(start, end)に渡す値がわかりません。何か案は?startend

4

7 に答える 7

27

あなたが使用することができますindexOf

if ( stringB.indexOf( stringA ) > -1 ) {
  // String B contains String A
} 
于 2012-12-12T06:21:11.273 に答える
18

このような:

var str = "abcdef";
if (str.indexOf("abcd") >= 0)

大文字と小文字が区別されることに注意してください。大文字と小文字を区別しない検索が必要な場合は、次のように記述できます

if (str.toLowerCase().indexOf("abcd") >= 0)

または、

if (/abcd/i.test(str))

大文字と小文字を区別しない検索の一般的なバージョンでは、大文字と小文字の任意の文字列を設定できます

if (stringA.toLowerCase().indexOf(stringB.toLowerCase()) >= 0)
于 2012-12-12T06:28:24.163 に答える
4

大きな文字列を扱っていて、文字列の先頭のみを検証する必要がある場合、indexOf または match を使用すると、不必要に遅くなります。より良い解決策は、 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWithからの startsWith() または同等の関数を使用することです:

if (!String.prototype.startsWith) {
    String.prototype.startsWith = function(searchString, position){
      position = position || 0;
      return this.substr(position, searchString.length) === searchString;
  };
}
于 2016-04-07T22:28:07.063 に答える
3

"abcdef".indexOf("abcd") !== -1大丈夫なはずです

于 2012-12-12T06:21:07.670 に答える
1

JavaScript検索も試すことができます

if( stringA.search(stringB) > -1){
}
于 2012-12-12T06:25:16.267 に答える
1

正規表現を使用すると役立つ場合があります。

var patt = new RegExp(stringA, 'i');
if(stringB.match(patt)){                            
   return true;
}
于 2012-12-12T06:27:18.797 に答える