gpt4 book ai didi

IBAN 的正则表达式允许空格并检查精确长度

转载 作者:行者123 更新时间:2023-12-04 02:33:16 25 4
gpt4 key购买 nike

我需要检查德国 IBAN 的输入字段。应该允许用户以空格离开,并且输入应该被验证为具有起始 DE然后精确 20 个字符的数字和字母。

没有空白津贴,我试过

^[DE]{2}([0-9a-zA-Z]{20})$

但我找不到在哪里以及如何添加“允许的任何地方的空白”。

这应该很简单,但我根本找不到解决方案。

感谢帮助!

最佳答案

因为您应该为正确的任务使用正确的工具:你不应该依赖正则表达式 来验证 IBAN 数字,而是使用 IBAN 校验和算法来检查整个代码实际上是否正确,从而使任何正则表达式变得多余和多余。即:删除所有空格,重新排列代码,转换为整数,并计算余数,here it's best explained .

不过,为了好玩,我试图回答你的问题:

关于什么:

^DE([0-9a-zA-Z]\s?){20}$

唯一的区别是在每次出现字母数字字符后允许有空格(或不允许)。

here是可视化:

Regular expression visualization

编辑:对于 OP 的信息,唯一的区别是这个正则表达式,来自 @ulugbex-umirov: (?:\s*[0-9a-zA-Z]\s*)进行先行检查以查看 iso 国家/地区代码和校验和(仅由数字组成)之间是否有空格,我故意不支持。

并且实际上支持正确的 IBAN 语法,它由 4 个字符组成,如 wikipedia page说:
^DE\d{2}\s?([0-9a-zA-Z]{4}\s?){4}[0-9a-zA-Z]{2}$

Regular expression visualization

example

如果你的 UI 是 Javascript,你可以使用 that用于进行 IBAN 验证的库:
<script src="iban.js"></script>
<script>
// the API is now accessible from the window.IBAN global object
IBAN.isValid('hello world'); // false
IBAN.isValid('BE68539007547034'); // true
</script>

所以您知道这是一个有效的 IBAN,并且可以在数据发送到后端之前对其进行验证。更简单、更轻、更优雅……为什么要做其他事情?

关于IBAN 的正则表达式允许空格并检查精确长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23471591/

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