联邦快递35个字符限制

时间:2013-09-27 20:47:44

标签: fedex

我们使用FedEx作为托运人。他们的标签打印机限制我们每个地址行35个字符。我的同事正在讨论如果第一行超过35个字符限制,将地址行拆分成第二个地址行。我们在使用其地址验证服务时也会遇到此问题。

我很好奇,其他人如何处理35个字符的限制?

提前致谢!

修改

发布我开发的解决方案,这样可以帮助其他人(为Perl编写并且变量名称已更改为保护无辜者)。

# handle too long strings
my $street1_string = sprintf( "%s", $ShipTo_Street_Line1 ) );
my $street2_string = sprintf( "%s", $ShipTo_Street_Line2 ) );
my $street1_final;
my $street2_final;
my $street1_length  = length($street1_string);
my $last_space_pos = rindex($street1_string, ' ');

# find and split on last space less than 35 characters
while($last_space_pos >= 35)
{
    if ($last_space_pos < 35)
    {
        break;
    }

    $last_space_pos = rindex($street1_string, ' ', $last_space_pos-1);
}

$street1_final = substr($street1_string, 0, $last_space_pos);
$street2_final = substr($street1_string, $last_space_pos+1, $street1_length) . ' ' . $street2_string;

2 个答案:

答案 0 :(得分:3)

是的,你是对的,角色限制可能很麻烦。我使用的方法不是很优雅,但它有效。 查找字符串中的所有“空格”并将字符串拆分到最接近但小于35的空格处,并将多余的字符串放在地址行2中。您将注意到地址行2也只有35个字符。

答案 1 :(得分:1)

之前我需要处理usps和ups标签。除了35个字符限制外,还有三个地址线限制。如果地址行超过35个字符,我会尝试在“逗号”之后拆分。如果不存在逗号,请拆分最接近该行末尾的空格。如果已经有三个地址线,我会将额外的地址行移到“公司”字段(运输标签有联系人,公司和3个地址行字段)。如果需要拆分两个以上的地址行,并且使用了所有3个地址行,则会失败并出现错误。这发生在数十万个地址中。