经典ASP——巩固一批年

Classic ASP - Consolidating A Group of Years

我目前使用的是 Classic ASP 内置的模板生成器。它从基本表单中获取值,并简单地 re-populates 具有这些值的模板,因此代码可以轻松复制并粘贴到 eBay、Amazon 等网站。它还会生成列表的标题。

今天特别感兴趣的类别是车轮。每个车轮都适合车辆的特定年限。有些轮子适合的年份范围如此之广,以至于标题只填满了年份,没有为其他年份留出任何空间。这是一个例子:

Dodge Ram 1500 2002 2003 2004 2005 2006 2007 2008 2009 Used OEM Wheel

所以为了解决这个问题,我编写了一些代码来为第一年和最后一年之间的每一年剃掉开头的“20”。所以它看起来像这样:

Dodge Ram 1500 2002 03 04 05 06 07 08 2009 Used OEM Wheel

这样可以去除足够多的额外字符,这样我就可以在 eBay 去除之前在标题中添加更多有用的信息。然而,现在的问题。在代码中,我使用一个简单的替换来删除任何 19XX 年或 20XX 年的前两位数字。这样做时,它还会删除 2019 年和 2020 年。显然,替换命令只是在完成它的工作,我知道 RegEx 有更好的方法,但我完全不熟悉语法。这是我的代码:

if len(r("item_y1")) > 4 then
    startyear0 = split(r("item_y1"),"-")
    startyear = int(startyear0(0))
    stopyear = int(startyear0(1))

    howmanyyears = stopyear - startyear
    
    for i = 1 to howmanyyears
        allyears = allyears & " " & (startyear + i)
    next 
    
    yearspan = stopyear-startyear
    
    if yearspan > 4 then
        allyears = replace(allyears,"19","")
        allyears = replace(allyears,"20","")
        allyears = Mid(allyears, 1, len(allyears) - 2)
        fullyears = startyear & allyears & stopyear
    else
        fullyears = startyear & allyears
    end if
end if

“item_y1”值为年份跨度,采集为:2005-2010

如果能帮助我走上正确的道路,我们将不胜感激!谢谢!

您可以尝试使用这样的函数来格式化年份值,而不是使用 Replace()

Function FormatYears(years)
    Dim result: result = years
    Dim data: data = Split(years, "-")
    If IsArray(data) Then
        result = Right(data(0), 2) & "-" & Right(data(1), 2)
    End If
    FormatYears = result
End Function

WScript.Echo FormatYears("1999-2000")

输出:

99-00