正则表达式测试如何return只精确匹配
regex test How to return only exact match
我有这个代码:
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 是数组中特定 post 的索引。
element.AdminID就是我要搜索的对应索引。
问题:
每当我尝试执行此搜索时,我都会得到每个匹配的索引以及匹配的部分索引。
假设我想检索索引#78。上面的代码returns:78、178、278、10078等等。我只想要确切的索引 - 而不是包含索引的每个索引。
我试过 .exec 和测试
我在 Whosebug 上查看了我能找到的每个 post。
请帮忙。
我如何为正则表达式指定它应该只查找整个 "string" ?
问题出在您使用的搜索模式上。
在 REGEX 中,您可以匹配行的开头和结尾(在单行字符串的情况下是字符串的开头和结尾)。为此,在搜索模式的开头添加 ^
,在结尾添加 $
。
例如 ^78$
只会匹配索引 78,而不是 178,278...
如果您正在查找包含许多索引的带分隔符的字符串,则必须在搜索模式中添加分隔符,或者拆分字符串并搜索其基本元素。
试试这个正则表达式:
\b78\b
\b
将确保这只是 78,而不是包含 78 的数字。
在您的情况下,search_term 应该是:
var search_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 以使我的脚本变得更加通用和灵活。但再次感谢您的宝贵意见。
我有这个代码:
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 是数组中特定 post 的索引。
element.AdminID就是我要搜索的对应索引。
问题: 每当我尝试执行此搜索时,我都会得到每个匹配的索引以及匹配的部分索引。
假设我想检索索引#78。上面的代码returns:78、178、278、10078等等。我只想要确切的索引 - 而不是包含索引的每个索引。
我试过 .exec 和测试 我在 Whosebug 上查看了我能找到的每个 post。
请帮忙。 我如何为正则表达式指定它应该只查找整个 "string" ?
问题出在您使用的搜索模式上。
在 REGEX 中,您可以匹配行的开头和结尾(在单行字符串的情况下是字符串的开头和结尾)。为此,在搜索模式的开头添加 ^
,在结尾添加 $
。
例如 ^78$
只会匹配索引 78,而不是 178,278...
如果您正在查找包含许多索引的带分隔符的字符串,则必须在搜索模式中添加分隔符,或者拆分字符串并搜索其基本元素。
试试这个正则表达式:
\b78\b
\b
将确保这只是 78,而不是包含 78 的数字。
在您的情况下,search_term 应该是:
var search_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 以使我的脚本变得更加通用和灵活。但再次感谢您的宝贵意见。