Включает () только в первом слове строки - PullRequest
0 голосов
/ 12 июня 2018

Привет, я хотел бы запустить метод includes() только для первого слова строки.Я обнаружил, что есть необязательный параметр fromIndex.Я бы предпочел указать toIndex, какое значение будет индексом первого пробела, но чего-то подобного не существует.

У вас есть идеи, как мне этого добиться?Спасибо!

Ответы [ 4 ]

0 голосов
/ 12 июня 2018

Вы можете разбить вашу строку и перейти к методу include с индексом 0

var a = "this is first word of a String";
console.log(a.includes(a.split(' ')[0]));
0 голосов
/ 12 июня 2018

Если это предложение, просто разбейте строку, чтобы получить первое слово

myString = "This is my string";
firstWord = myString.split(" ")[0];
console.log("this doesn't include what I'm looking for".includes(firstWord));
console.log("This does".includes(firstWord));
0 голосов
/ 12 июня 2018

Вы можете попробовать следующий подход и создать новый метод

let str = "abc abdf abcd";
String.prototype.includes2 = function(pattern,from =0,to = 0) {
  to = this.indexOf(' ');
  to = to >0?to: this.length();
  return this.substring(from, to).includes(pattern);
}
console.log(str.includes2("abc",0,3));
console.log(str.includes2("abc",4,8));
console.log(str.includes2("abc"));
console.log(str.includes2("abd"))
0 голосов
/ 12 июня 2018

Вы сказали, что имеете в виду toIndex, поэтому есть два варианта:

  1. Используйте indexOf вместо:

    var n = str.indexOf(substr);
    if (n != -1 && n < toIndex) {
        // It's before `toIndex`
    }
    
  2. Выделите первое слово (используя split или substring или что-то еще), а затем используйте includes на нем:

    if (str.substring(0, toIndex).includes(substr)) {
        // It's before `toIndex`
    }
    

(Отрегулируйте использование toIndex и выше, в зависимости от того, хотите ли вы, конечно, включительно или эксклюзивно.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...