[英]javascript - search(regex), get position of the last character of the matched string
javascript中,當有多個字符時, String.search()
返回匹配開始的字符的position(字符索引)。 意思是,例如,如果您嘗試在abcdefghij
中使用正則表達式搜索cde
,它會返回2
( c
所在的位置)而不是4
( e
所在的位置)。 我該怎么做呢? 我不會只取 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.