簡體   English   中英

JavaScript 中從偏移 x 到 y 的單詞替換

[英]Word substitution from offset x to y in JavaScript

我需要替換句子中的一個詞。 例如:

Programming makes my eyes grow tired. Eyes are cool.

我需要將第一次出現的“眼睛”一詞替換為“大腦”一詞,將第二次出現的“眼睛”一詞替換為“耳朵”一詞。 我想使用第一個單詞 Eyes 的偏移量和第二個單詞 Eyes 的偏移量。

我的代碼:

suggestion.addEventListener('click', function() {

    let offsetStart = parseInt(value[i]['offset']),
        offsetEnd = parseInt(value[i]['offset']) + parseInt(value[i]['word'].length);

    // VALUES: Programming makes my eyes grow tired. Eyes are cool.
    const textarea = document.getElementsByTagName('textarea')[0].value;
    // REPLACED VALUE: Programming makes my brain grow tired. Ears are cool.

});

 let str = 'Programming makes my eyes grow tired. Eyes are cool.'; let res = str.replace(/^(.*?)eyes(.*?)eyes/i, (_, g1, g2) => g1 + 'brain' + g2 + 'Ears'); console.log(res);

這可以縮短為:

 const input = 'Programming makes my eyes grow tired. Eyes are cool.'; let result = input.replace(/\b(eyes)\b(.*?)\b(eyes)\b/i, 'brain$2Ears'); console.log(result);

正則解釋:

  • \b(eyes)\b -- 捕獲組 1:帶有單詞邊界的文字eyes (這避免了像eyesore這樣的誤報
  • (.*?) -- 捕獲組 2:非貪婪掃描到:
  • \b(eyes)\b -- 捕獲組 3:文字eyes

了解有關正則表達式的更多信息: https://twiki.org/cgi-bin/view/Codev/TWikiPresentation2018x10x14Regex

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM