【问题标题】:How do I reformat text into a different pattern?如何将文本重新格式化为不同的模式?
【发布时间】:2020-05-11 00:27:36
【问题描述】:

如何编写代码以将这种 BBBBB-AAA 模式更改为 0AAABBBBB?我正在使用 asp.net、vb.net 和 jQuery。

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

支票上显示的加拿大路由号码需要重新格式化 电子支付不同。如果检查显示路由 编号为 BBBBB-AAA(其中 AAA 表示金融机构和 BBBBB 是分支),那么必须将路由号更改为 0AAABBBBB 以电子方式处理付款。例如,如果一个 来自蒙特利尔银行开出的账户的支票显示 路由号码 00011-001,那么该号码需要是 重新格式化为 000100011 以电子方式付款 已处理。

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

<input id="txtBankCode" maxlength="9" required="required" />

我在我的 jQuery .js 页面上获取数据:

var bankCode = $("#txtBankCode").val()

我需要将bankCode 重新排列为0AAABBBBB 而不是BBBBB-AAA 的格式。我猜有些用户不会输入破折号,而有些用户会。我该怎么做?

【问题讨论】:

  • 鉴于不依赖数字中的破折号的要求,您可以使用正则表达式解决此问题。我建议首先弄清楚你是否想在 VB 或 JS 中执行此操作(因为两者都是可能的),然后研究正则表达式

标签: javascript jquery asp.net vb.net


【解决方案1】:

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

这是一个 JS 解决方案:

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

console.log(bankCode);

在 VB 中也是同样的逻辑:

Dim bankCode As String = "BBBBB-AAA"
bankCode = Regex.Replace(bankCode, "^(\w{5})-?(\w{3})$", "0$2$1")

Console.WriteLine(bankCode)

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • I am guessing some users will not type the dash while some users will
    • @RoryMcCrossan 啊,我想我误认为只有在用户包含破折号时才需要转换。一秒钟,我会相应地编辑答案。
    【解决方案3】:

    试试这个。

    function show() {
        var bankCode = $("#txtBankCode").val();
        console.log(bankCode.replace(/([a-zA-Z]{5})-?([a-z-A-Z]{3})/, `0$2$1`));
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <input id="txtBankCode" maxlength="9" required="required" />
    <button type="button" onclick="show()">Show</button>

    【讨论】:

      猜你喜欢
      • 2020-10-21
      • 1970-01-01
      • 2011-09-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-24
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多