Javascript 正则表达式测试如何仅返回精确匹配
我有以下代码:Javascript 正则表达式测试如何仅返回精确匹配,javascript,jquery,regex,testing,exec,Javascript,Jquery,Regex,Testing,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
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;
postAdminID是数组中特定帖子的索引
element.AdminID是我正在搜索的相应索引
问题:
每当我尝试执行此搜索时,我都会得到每个匹配的索引,也会得到部分匹配的索引
假设我想要检索索引#78。上面的代码返回:7817827810078等等。我只想要准确的索引,而不是每个包含索引的索引
我试过了。执行和测试
我已经在这里找到的关于stackoverflow的每一篇文章中都找到了
请帮忙。
如何为regex指定只查找整个“字符串”?问题在于您使用的搜索模式 在正则表达式中,可以匹配行的开头和结尾(如果是单行字符串,则为字符串的结尾)。为此,在搜索模式的开头添加
^
,在结尾添加$
例如,^78$
将只匹配索引78,而不是178278
如果要查找包含许多索引的分隔符的字符串,则必须在搜索模式中添加分隔符,或拆分字符串并搜索其基本元素。问题在于您使用的搜索模式 在正则表达式中,可以匹配行的开头和结尾(如果是单行字符串,则为字符串的结尾)。为此,在搜索模式的开头添加
^
,在结尾添加$
例如,^78$
将只匹配索引78,而不是178278
如果要查找包含多个索引的分隔符的字符串,则必须在搜索模式中添加分隔符,或拆分字符串并搜索其基本元素。尝试此正则表达式:\b78\b
\b
将确保这只是78,而不是包含78的数字。在您的情况下,搜索词应为:
var search\u term=“\b”+postAdminID+“\b”
试试这个正则表达式:\b78\b
\b
将确保这只是78,而不是包含78的数字。在您的情况下,搜索词应为:
var search\u term=“\b”+postAdminID+“\b”
感谢您的输入。这两个建议都起到了作用。但他们限制将脚本用于其他目的。我想使用一种搜索算法来搜索不止一个整数键
最后,我使用了以下脚本:return element.AdminID==postAdminID强>
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 element.AdminID == postAdminID;
});
我还添加了几个search.exec,以使我的脚本变得更加通用和灵活。但再次感谢您宝贵的意见。谢谢您的意见。这两个建议都起到了作用。但他们限制将脚本用于其他目的。我想使用一种搜索算法来搜索不止一个整数键 最后,我使用了以下脚本:return element.AdminID==postAdminID强>
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 element.AdminID == postAdminID;
});
我还添加了几个search.exec,以使我的脚本变得更加通用和灵活。但再次感谢您宝贵的输入。您尝试匹配的字符串是什么样子的?我假设您正在尝试从列表中查找一个?您需要添加任何用于将项目分隔到搜索模式中的内容,否则它将全局执行,因为它将其视为搜索搜索,搜索项包括什么?编辑您的问题并包括必要的详细信息。如果没有正则表达式模式和示例数据,一点代码都没有用。您要匹配的字符串是什么样子的?我假设您要在列表中找到一个?您需要添加任何用于将项目分隔到搜索模式中的内容,否则它将全局执行,因为它将其视为搜索搜索,搜索项包括什么?编辑您的问题并包括必要的详细信息。如果没有正则表达式模式和示例数据,一点代码都没有用。