gpt4 book ai didi

javascript - Jquery正则表达式搜索子字符串或通配符

转载 作者:行者123 更新时间:2023-12-03 02:19:18 24 4
gpt4 key购买 nike

我有这个正则表达式搜索:我正在数组中搜索产品价格。搜索与产品编号匹配(在本例中:“04.1177”)

取决于产品是“产品系列”还是单一产品产品编号包含 7 到 12 个字符。“04.1177”是单一产品,而“04.1177.0000”定义了一系列产品。我想查找所有出现的前 7 个字符,忽略最后 5 个字符。

sentInfo = "04.1177"

function getPrices(sentInfo) {
var searchFor = sentInfo.toString()

// Make sure we use . instead of , in string
var search_term = (sentInfo).replace(/\,/g,'.');

var search = new RegExp(search_term, "i");
if (sdsInfo) {
sdsFilter = $.grep(sdsInfo.priser, function (element, index) {
var sted = search.test("^"+element.FIELD1+"\//")
return sted;
});
}
$.each( sdsFilter, function ( index, value ) {
$('.'+kat).html((value.FIELD2).toFixed(2));
$('.'+kat).data('price',value.FIELD2);
});
}

上面的脚本本身就可以工作。

数组看起来像这样:

{"FIELD1":"01.1407","FIELD2":259, "FIELD3":"name"},{"FIELD1":"04.1177.0000","FIELD2":349, "FIELD3":"name"},{"FIELD1":"04.1177.0100","FIELD2":349, "FIELD3":"name"}

使用上面的脚本,如果 value.FIELD1 匹配整个字符串,我就会得到匹配。但如果字符串较长,它会忽略结果(返回 null 或 false)

搜索:04.1177 中的 04.1177 = true搜索:04.1177.0000 中的 04.1177 = false

我需要确保以上两点都是正确的。有什么想法吗?

抱歉,如果这个问题以某种方式重复,但我无法在任何地方找到解决方案......

最佳答案

如果您确定要检查 var 的前 7 个字符并忽略其余字符,只需针对 var.substring(0,7) 运行正则表达式即可而不是完整的 var。 (这将返回七个字符,从索引零开始——因此是字符串的前七个字符。)

如果您知道您只是在寻找这 7 个字符的精确匹配,则只需测试相等性而不是使用正则表达式。

您的代码中有一些 undefined variable (看起来您可能已经翻译了一些变量名称,但没有翻译其他变量名称)--katsdsInfo(是数组?), sdsInfo.priser ——所以我不能 100% 确定下面的代码符合您的意图,但它应该足以证明这个想法:

var arr = [{
"FIELD1": "01.1407",
"FIELD2": 259,
"FIELD3": "name"
}, {
"FIELD1": "04.1177.0000",
"FIELD2": 349,
"FIELD3": "name"
}, {
"FIELD1": "04.1177.0100",
"FIELD2": 349,
"FIELD3": "name"
}]

function getPrices(sentInfo) {
// Make sure we use . instead of , in string
var search_term = sentInfo.toString().replace(/\,/g, '.');

arr.forEach(function(value) {
// compare the first 7 chars of FIELD1 to search_term, which is already 7 chars:
if (value.FIELD1.substring(0,7) === search_term) {
console.log("matched: ", value)
//$('.' + kat).data('price', value.FIELD2);
}
});

}

getPrices("04.1177")
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

关于javascript - Jquery正则表达式搜索子字符串或通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49236082/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com