Javascript 如何将文本重新格式化为不同的模式?

Javascript 如何将文本重新格式化为不同的模式?,javascript,jquery,asp.net,vb.net,Javascript,Jquery,Asp.net,Vb.net,如何对代码进行编程以将BBBBB-AAA的模式更改为0AAABBB?我正在使用asp.net、vb.net和jQuery 加拿大银行帐户路由号码的格式: 支票上显示的加拿大路线号码需要重新格式化 对于电子支付,情况有所不同。如果复选框显示一个路由 编号为BBB-AAA(其中AAA表示金融机构和 BBB是分支),则必须将路由编号更改为 0aaabbbb以电子方式处理付款。例如,如果 蒙特利尔银行出具的账户支票显示 路由号00011-001,则该号码需要 重新格式化为000100011,以便以电子方

如何对代码进行编程以将BBBBB-AAA的模式更改为0AAABBB?我正在使用asp.net、vb.net和jQuery

加拿大银行帐户路由号码的格式:

支票上显示的加拿大路线号码需要重新格式化 对于电子支付,情况有所不同。如果复选框显示一个路由 编号为BBB-AAA(其中AAA表示金融机构和 BBB是分支),则必须将路由编号更改为 0aaabbbb以电子方式处理付款。例如,如果 蒙特利尔银行出具的账户支票显示 路由号00011-001,则该号码需要 重新格式化为000100011,以便以电子方式付款 已处理

我在我的
.aspx
页面上从用户那里获取数据:

<input id="txtBankCode" maxlength="9" required="required" />
var bankCode = $("#txtBankCode").val()
我需要将
bankCode
重新排列为
0aaabbbb
格式,而不是
bbbbbbb-AAA
。我猜有些用户不会键入破折号,而有些用户会。我该怎么做呢?

编辑我想我误解了你关于可选破折号的评论。那么,拆分在这里不起作用,因为它需要破折号出现。因此,您需要首先通过删除破折号(如果有)来清理字符串,然后使用子字符串或正则表达式重新排列它:

bankCode = bankCode.replace(/-/g, '');
const first = bankCode.substring(0,5);
const second = bankCode.substring(5);
bankCode = `0${second}${first}`;
试试这个

函数显示(){
var bankCode=$(“#txtBankCode”).val();
console.log(bankCode.replace(/([a-zA-Z]{5})-?([a-Z-a-Z]{3})/,`0$2$1`);
}


Show
如果连字符是可选的,则不能依靠它的存在来拆分字符串。因此,另一种解决方案是使用正则表达式根据输入格式重新组织字符串。试试这个:

下面是一个JS解决方案:

var bankCode='BBBBB-AAA';
bankCode=bankCode.replace(/^(\w{5})-?(\w{3})$/,'0$2$1');

控制台日志(银行代码)
我猜有些用户不会键入破折号,而有些用户会键入破折号。啊,我想我误解了,如果用户包含破折号,就只需要转换。一秒钟后,我会相应地编辑答案。考虑到不依赖数字中的破折号的要求,你可以用正则表达式来解决这个问题。我建议先弄清楚你是想在VB还是JS中这样做(因为两者都有可能),然后再研究正则表达式