簡體   English   中英

javascript - 搜索(正則表達式),獲取匹配字符串最后一個字符的 position

[英]javascript - search(regex), get position of the last character of the matched string

javascript中,當有多個字符時String.search()返回匹配開始的字符的position(字符索引)。 意思是,例如,如果您嘗試在abcdefghij中使用正則表達式搜索cde ,它會返回2c所在的位置)而不是4e所在的位置)。 我該怎么做呢? 我不會只取 position,加上一個固定的數字,你會得到最后一個字符 ( Position + 2 ),如果匹配有不同的長度匹配,那將不起作用。

改用match 您可以使用捕獲組來添加匹配的長度。

const [, group, index] = "abcdfghij".match(/(cde?)/)

/* Make sure results are not undefined */

const lastIndex = index + (group.length - 1);

您始終可以創建自己的方法。

function indexLastCharacter(string, search_word) {
    let indexFirstCharacter = string.search(search_word);
    return indexFirstCharacter + search_word.length;
}

console.log(indexLastCharacter("abcdefghij", "cde"))
// -> 5

我發現 lookbehind 也有效,例如(?<=y).*$將在y之后返回 position。

暫無
暫無

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

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