gpt4 book ai didi

javascript - 如何正确为 IBAN 数组添加空格

转载 作者:行者123 更新时间:2023-11-28 17:40:40 25 4
gpt4 key购买 nike

我想问一个关于正则表达式的问题。

我有一组 IBAN。

例如[“DE46700202700663820656”,“DE07860700240455474700”]

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

例如“DE46 7002 0270 0663 8206 56”

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

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

它可以添加空格,但正则表达式不会为第二个 IBAN 重新启动,并且第二个 IBAN 会被销毁。

例如[“DE46 7002 0270 0663 8206 56”,“D E078 6070 0240 4554 7470 0”]

我应该怎样做才能显示两个带有适当空格的 IBAN,如下所示?

例如[“DE46 7002 0270 0663 8206 56”,“DE07 8607 0024 0455 4747 00”]

最佳答案

It could add whitespace but regex does not restart for a second IBAN and second IBAN is destroyed.

那是因为正则表达式保持状态。要么:

  1. 每次都创建它,或者

  2. 使用前将lastIndex设置为0

这是#1:

var ibans = ["DE46700202700663820656", "DE07860700240455474700"];
ibans = ibans.map(function(iban) {
return iban.replace(/(.{4})/g, '$1 ');
});
console.log(ibans);

除非您使用的古老 JavaScript 引擎存在每次不重新创建文字正则表达式的问题(我们谈论的是 Firefox 3.0x 或类似版本),否则应该没问题。

这是#2:

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+ 箭头函数等,两者都可以缩短......

关于javascript - 如何正确为 IBAN 数组添加空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48020882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com