Как сравнить часть строки - например, если я хочу сравнить строку A, является частью String b - мне бы хотелось выяснить этот способ: String A = "abcd" String B = "abcdef" необходимо return true - Как это сделать, что я JavaScript, сравнивать должны быть одни и те же слова, использовать подстроку, я не знаю, где указать предел позиции. Любые идеи?
Сравнить часть строки
Ответ 1
Вы можете использовать indexOf
:
if ( stringB.indexOf( stringA ) > -1 ) {
// String B contains String A
}
Ответ 2
Вот так:
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)
Ответ 3
"abcdef".indexOf("abcd") !== -1
должно быть в порядке
Ответ 4
Вы также можете попробовать поиск по javascript
if( stringA.search(stringB) > -1){
}
Ответ 5
Использование регулярного выражения может помочь вам.
var patt = new RegExp(stringA, 'i');
if(stringB.match(patt)){
return true;
}
Ответ 6
Использование indexOf или соответствия излишне медленное, если вы имеете дело с большими строками, и вам нужно только проверить начало строки. Лучшим решением является использование startsWith() или его эквивалентной функции - от https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith:
if (!String.prototype.startsWith) {
String.prototype.startsWith = function(searchString, position){
position = position || 0;
return this.substr(position, searchString.length) === searchString;
};
}