使用正则表达式验证银行帐号

银行帐号是在任何特定银行开设账户后分配给账户持有人的唯一编号。从技术上讲,我们可以将银行帐号视为主键。银行帐号使我们能够进行借记、贷记和其他交易。根据 RBI 指南,银行帐号具有独特的结构。Account Number的结构如下:

  • 银行帐号仅以数字形式书写。
  • 银行帐号长度从 9 位到 18 位不等。
  • 不允许有空格。
  • 不允许有特殊字符。
  • 它包含从 0 到 9 的数字。

例子

输入:str = ”635802010014976”
输出:True
解释:它匹配正确的银行帐号。

输入:str = ” UBIN0563587”
输出:False
解释:它不应包含任何字母字符。

输入:str = ”9136812@895_”
输出:False
解释:不允许使用下划线和特殊字符。

输入:str = ”1 2071998”
输出:False
解释:不允许使用空格。

使用正则表达式验证帐号的方法

思路是用正则表达式来解决这个问题。Regex 将验证输入的数据并提供准确的格式。以下是可以针对该问题采取的步骤:

  • 接受字符串
  • 创建一个正则表达式模式来验证银行帐号:
正则表达式=^[0-9]{9,18}$” 或正则表达式=^\d{9,18}$”

^ :-字符串的开头。
[0-9] :-匹配集合中的任何字符。
{9,18} :-匹配前面标记的 9 到 18。
$ :-字符串结尾。

下面是上述方法的代码实现:

// 使用正则表达式验证BANK ACCOUNT NUMBER的C++程序

#include <iostream>
#include <regex>
using namespace std;

// 验证银行账号的功能
bool isValid_Bank_Acc_Number(string bank_account_number)
{

	const regex pattern("^[0-9]{9,18}$");
	if (bank_account_number.empty()) {
		return false;
	}
	if (regex_match(bank_account_number, pattern))
	{
		return true;
	}
	else
	{
		return false;
	}
}

void print(bool value){	
	cout<<"Is this account valid: ";	
	if(value)
		cout<<"True"<<endl;
	else
		cout<<"False"<<endl;
}

int main()
{
	string str1 = "635802010014976";
	print(isValid_Bank_Acc_Number(str1));

	string str2 = "9136812895_";
	print(isValid_Bank_Acc_Number(str2));

	string str3 = "BNZAA2318JM";
	print(isValid_Bank_Acc_Number(str3));
	
	string str4 = " 934517865";
	print(isValid_Bank_Acc_Number(str4));

	string str5 = "UBIN0563587";
	print(isValid_Bank_Acc_Number(str5));
	
	string str6 = "654294563";
	print(isValid_Bank_Acc_Number(str6));

	return 0;
}

输出:

此帐户是否有效:True
此账号是否有效:False
此账号是否有效:False
此账号是否有效:False
此账号是否有效:False
此帐户是否有效:True
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值