首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在UI中每4个字符后有一个空格来呈现数字呢?

如何在UI中每4个字符后有一个空格来呈现数字呢?
EN

Stack Overflow用户
提问于 2018-09-06 13:51:00
回答 3查看 47关注 0票数 2

我有一个16位数的属性,例如返回(1234123412341234)。我希望它在我的UI上呈现一个空格,例如每4个数字字符( 1234 1234 1234)。我使用的是角度JS,所以我正在寻找一种方法来完成这个任务。我很确定这是一个定制的角度过滤器或正则表达式相关的,但我的知识和如何实现它是有限的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-09-06 14:04:24

AngularJS过滤器易于安装。只需接受一个参数并在其上应用任何JS格式。下面是一个有用的例子:

代码语言:javascript
复制
var app = angular.module('myApp', []);
app.filter('myFilter', function() {
  return function(x) {
    return x.toString().replace(/\d{4}(?=.)/g, '$& '); // your format filter here
  };
});
app.controller('demoCtrl', function($scope) {
  $scope.test = 1234123412341234;
});
代码语言:javascript
复制
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body>
  <div ng-app="myApp" ng-controller="demoCtrl">
    {{test | myFilter}}
  </div>
</body>
</html>

(我从尼娜·肖尔兹的答案中提取了regex代码,请随意使用其他regex)

票数 0
EN

Stack Overflow用户

发布于 2018-09-06 13:55:45

您可以使用正则表达式和前瞻性。

积极展望在等号之后查找模式,但不包括在匹配中。

x(?=y) 只有当'x‘后面跟着'y’时才匹配'x‘。这就是所谓的前瞻性。 例如,只有在/Jack(?=Sprat)/后面跟着'Sprat‘时,它才会匹配'Jack’。只有在后面跟着'Sprat‘或'Frost’时,/Jack(?=Sprat|Frost)/才能匹配'Jack‘。然而,“斯普拉特”和“霜冻”都不是比赛结果的一部分。

代码语言:javascript
复制
function format(s) {
    return s.toString().replace(/\d{4}(?=.)/g, '$& ');
}

console.log(format(1234123412341234));

票数 3
EN

Stack Overflow用户

发布于 2018-09-06 13:54:56

您可以使用match(),然后使用带空格的join()

代码语言:javascript
复制
var str = '1234123412341234';
var res = str.match(/.{1,4}/g).join(' ');
console.log(res);

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

https://stackoverflow.com/questions/52205639

复制
相关文章

相似问题

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