gpt4 book ai didi

javascript - 常用表达

转载 作者:行者123 更新时间:2023-11-30 14:30:58 27 4
gpt4 key购买 nike

我在这里创建了一个搜索系统 = https://www.secondhandboards.com/productsresultsbrands.php

使用 Algolia Instantsearchjs V2

左侧有一个过滤器,用户可以根据产品尺寸过滤产品。但是我无法让尺寸以合适的顺序显示。我们有各种不同的尺寸组合。有些以英尺和英寸为单位,例如 5'6",有些是文本值,例如 S、M、L、XL 和其他只是数字。数字项很好,但是当涉及到英尺和英寸时,它显示或示例:

5'10"5'1"5'2"5'3"

所以 5'10"出现在 5'1"值之前。

我现有的功能是:

sortBy: function(a, b) {
return parseInt(a.name, 10) - parseInt(b.name, 10);
},

但并没有真正达到预期的结果。

有没有人得到任何指示或示例,说明我可以如何实现正则表达式来正确排序此尺寸列表。我以前从未使用过正则表达式。

任何帮助将不胜感激。谢谢。

最佳答案

正则表达式用于解析文本,而不是用于比较值。它们对于这项工作来说完全是错误的任务……除非您想使用它们来处理这些值并查看它们是否确实是英尺和英寸测量值。

function isFeetAndInches(input) {
// returns an array [feet,inches] if the input is such, false otherwise
var match = input.match(/^(\d+)'(\d+)"$/);
if( match) return [match[1],match[2]];
return false;
}

现在你可以比较:

var afi = isFeetAndInches(a),
bfi = isFeetAndInches(b);
if( afi && bfi) {
return afi[0] - bfi[0] || afi[1] - bfi[1];
}
// else try some other comparison because they aren't both feet-and-inches.

关于javascript - 常用表达,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51173195/

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