正则表达式测试如何仅返回完全匹配

Xan*_*Man 1 javascript regex testing jquery exec

我有这个代码:

    var search_term = postAdminID

    // Wildcards Search
    var search = new RegExp(search_term, "i");
    sdsFilter = $.grep(sdsInfo.products, function(element, index) {
        var sted = search.exec(element.AdminID)

        return sted;
Run Code Online (Sandbox Code Playgroud)

postAdminID 是数组中特定帖子的索引。

element.AdminID 是我要搜索的相应索引。

问题:每当我尝试执行此搜索时,我都会得到每个匹配的索引以及匹配的索引的一部分。

假设我想检索索引#78。上面的代码返回:78、178、278、10078 等等。我只想要确切的索引 - 不是每个包含该索引的索引。

我已经尝试过 .exec 和测试,我查看了我能找到的 stackoverflow 上的每一篇文章。

请帮忙。如何为正则表达式指定它应该只查找整个“字符串”?

小智 5

问题是您正在使用的搜索模式。

在 REGEX 中,您可以匹配行的开头和结尾(如果是单行字符串,则为字符串的开头和结尾)。为此,请^在搜索模式的开头和$末尾添加。

例如^78$只会匹配索引 78,而不是 178,278...

如果您正在查找包含许多索引的带有分隔符的字符串,则必须在搜索模式中添加分隔符,或者拆分字符串并搜索其基本元素。