[英]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.