如何解决javascript-searchregex,获取匹配字符串的最后一个字符的位置
在javascript中,如果有多个字符,则String.search()
返回字符在比赛开始时的位置(字符索引)。举例来说,这意味着,如果您尝试对cde
中的abcdefghij
进行正则表达式搜索,它将返回2
(位于c
处)而不是4
(其中{ {1}}在)。我该怎么做呢?我不会只是坐下来,加上一个固定的数字,然后您会得到最后一个字符(e
),如果匹配的长度匹配不同,该字符将不起作用。
解决方法
改为使用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
,
我发现后面的搜索也可以工作,例如(?<=y).*$
将在y
之后返回位置。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。