Word js: опция поиска matchCase не работает должным образом - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь найти слово, которое является заглавными, но опция поиска matchCase не работает должным образом. ниже приведен мой код:

textToHighlight = "Deed";
var rangeCol = para.search(textToHighlight, { matchCase: true});

Текст абзаца: Продавец должен передать покупателю право собственности на имущество путем предоставления гранта в форме письма («Акт»).

Всегда возвращается первый экземпляр документа, который не является прописным.

Спасибо

1 Ответ

0 голосов
/ 13 апреля 2020

См. Фрагмент ниже, он работает как положено. Вы пытаетесь сделать что-то еще?

let para = "[...] to Buyer by grant deed in the form of letter"

textToHighlight = "Deed";
var rangeCol = para.search(textToHighlight, { matchCase: true});

console.log(rangeCol); // -1, not found

para = "[...] to Buyer by grant Deed in the form of letter"

textToHighlight = "Deed";
var rangeCol = para.search(textToHighlight, { matchCase: true});
console.log(rangeCol); // 24, found

В плане выделения текста с помощью ванили JavaScript я придумал следующее:

let _text = text.innerText;
button.addEventListener("click", () => {
  text.innerText = _text;
  let textToHighlight = input.value;
  var rangeCol = text.innerText.search(textToHighlight, {
    matchCase: true,
  });

  let node = text.childNodes[0];
  let spaces = node.textContent.match(/^\s*/)[0].length;

  let range = new Range();
  range.setStart(node, spaces + rangeCol);
  range.setEnd(node, spaces + rangeCol + textToHighlight.length);

  const mark = document.createElement("mark");
  range.surroundContents(mark);
});
#text {
  margin: 10px 0;
}

mark {
  background-color: yellow;
}
<div id="text">
  Seller shall convey title to the Property to Buyer by grant deed in the form of letter("Deed").
</div>
<input id="input" type="text" />
<button id="button">Highlight</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...