Как переформатировать текст в другой шаблон? - PullRequest
2 голосов
/ 24 января 2020

Как я могу запрограммировать свой код, чтобы изменить этот шаблон BBBBB-AAA на 0AAABBBBB? Я использую asp. net, vb. net и jQuery.

Формат для номера маршрутизации канадского банковского счета:

Канадец номер маршрутизации, отображаемый в чеке, необходимо переформатировать по-другому для электронных платежей c. Если чек отображает номер маршрутизации как 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. Я предполагаю, что некоторые пользователи не будут печатать da sh, в то время как некоторые пользователи будут. Как я могу это сделать?

Ответы [ 3 ]

2 голосов
/ 24 января 2020

Учитывая, что дефис необязателен, вы не можете полагаться на его наличие для разделения строки. В качестве такого альтернативного решения было бы использовать регулярное выражение для реорганизации строки на основе ее формата ввода. Попробуйте это:

Вот решение JS:

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

console.log(bankCode);

А вот тот же лог c в VB:

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

Console.WriteLine(bankCode)
1 голос
/ 24 января 2020

Попробуйте это.

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>
1 голос
/ 24 января 2020

РЕДАКТИРОВАТЬ Я думаю, что я неправильно понял ваш комментарий о дополнительном да sh. Разделение здесь не сработает, так как для этого требуется наличие da sh. Поэтому вам нужно сначала очистить строку, удалив da ​​sh, если она там есть, а затем использовать подстроку или регулярное выражение для ее перестановки:

bankCode = bankCode.replace(/-/g, '');
const first = bankCode.substring(0,5);
const second = bankCode.substring(5);
bankCode = `0${second}${first}`;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...