首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确添加IBAN数组的空格

如何正确添加IBAN数组的空格
EN

Stack Overflow用户
提问于 2017-12-29 10:10:23
回答 2查看 374关注 0票数 0

我想问一个关于regex的问题。

我有一列伊万。

eg ["DE46700202700663820656", "DE07860700240455474700"]

我想在每4个字符之间添加空格。

eg "DE46 7002 0270 0663 8206 56"

目前我使用这个正则表达式。

String(this.props.invoiceData.iban).replace(/(.{4})/g, '$1 ').split(',')

它可以添加空白,但是regex不会重新启动第二个IBAN,而第二个IBAN被销毁。

eg ["DE46 7002 0270 0663 8206 56", "D E078 6070 0240 4554 7470 0"]

我应该怎么做才能向两个具有适当空格的IBAN展示如下所示?

eg ["DE46 7002 0270 0663 8206 56", "DE07 8607 0024 0455 4747 00"]

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-29 10:16:07

它可以添加空白,但是regex不会重新启动第二个IBAN,而第二个IBAN被销毁。

那是因为大王保持状态。以下任一项:

  1. 每次创建它,或者
  2. 使用前将lastIndex设置为0

这里是#1:

代码语言:javascript
复制
var ibans = ["DE46700202700663820656", "DE07860700240455474700"];
ibans = ibans.map(function(iban) {
  return iban.replace(/(.{4})/g, '$1 ');
});
console.log(ibans);

除非您使用的是古老的 JavaScript引擎,每次都有不重新创建文字正则表达式的问题(我们说的是Firefox3.0x或更多),那应该没问题。

这里是#2:

代码语言:javascript
复制
var rex = /(.{4})/g;
var ibans = ["DE46700202700663820656", "DE07860700240455474700"];
ibans = ibans.map(function(iban) {
  rex.lastIndex = 0;
  return iban.replace(rex, '$1 ');
});
console.log(ibans);

很明显,如果可以使用ES2015+箭头函数,这两种功能都可以缩短.

票数 2
EN

Stack Overflow用户

发布于 2017-12-29 10:14:54

您可以使用.map()尝试这样的方法

代码语言:javascript
复制
var a = ["DE46700202700663820656", "DE07860700240455474700"];
var b = a.map(i => i.replace(/(.{4})/g, '$1 '));
console.log(b)

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

https://stackoverflow.com/questions/48020882

复制
相关文章

相似问题

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