首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS:用破折号格式化5或9位的邮政编码

AngularJS:用破折号格式化5或9位的邮政编码
EN

Stack Overflow用户
提问于 2015-05-14 16:11:10
回答 1查看 4.4K关注 0票数 2

有一个字符串表达式{{zipcode}},它显示5或9位数字。

xxxxxxxxxx-xxxx格式自动显示这个邮政编码的最佳方法是什么?

我相信使用过滤器是可行的方法,但与过滤器和ui掩码有点混淆。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-26 23:21:01

使用过滤器确实是解决这个问题的方法。以下是两种解决方案:

使用模块

您可以使用以下过滤器在项目中添加角压码滤波器并格式化邮政编码:

{{ 981222735 | zipcode }}

自己的事情自己做

下面是这个过滤器的工作方式:

  1. 接收输入
  2. 验证它是否有5或9位数字。
  3. 如果有9位数字,则返回格式化的has代码输出。
  4. 保持原样,以防它有5位数字。

示例:

代码语言:javascript
复制
angular.module('myApp',[])
  .filter('zipcode', function () {
    return function (input) {
      if (!input) {
        return input;
      }
      if (input.toString().length === 9) {
        return input.toString().slice(0, 5) + "-" + input.toString().slice(5);
      } else if (input.toString().length === 5) {
        return input.toString();
      } else {
        return input;
      }
    };
  });
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="myApp">
  <p>5-digit zip code: {{ 981222735 | zipcode }} </p>
  <p>9-digit zip code: {{ 98122 | zipcode }} </p>
</div>

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30242081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档