JavaScript - лучший способ извлечь строку чисел между двумя символами - PullRequest
0 голосов
/ 03 декабря 2018

Мне нужно регулярное выражение для извлечения строки цифр из строки, строка может выглядеть следующим образом:

B01234567XXXX

, в то время как B всегда B иXXXX может быть любым: цифры, символы, буквы

, но цифры всегда 8 цифр.

пример:

B01234567ABCD output: 01234567
B012345678901 output: 01234567
B01234567¿☺♥◘ output: 01234567
B01234567XXXX output: 01234567
B0123456787@X output: 01234567

Это часть функции устройства считывания штрих-кода, если буквы находятся в упомянутой формации, то это идентификатор, в противном случае это штрих-код, поэтому в любом случае это должен быть вывод, означающий, что это может быть B012345670020 в качестве ввода, но вывод все равно должен быть 01234567

То, что я имеюпопробовал, посмотрев в гугле:

if (vm.BarcodeInput[0]=='B') {
    let regex = /\d{8}\g;
    let found = vm.BarcodeInput.match(regex);

}

Я ищу более привлекательный способ сделать это, надеюсь, я был достаточно ясен.

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Обновив образцы в своем посте, вы можете использовать это регулярное выражение

B(\d{8})

, которое содержит только восемь цифр, перед которыми стоит символ B.

var match = /B(\d{8})/.exec("B012345678");
if (match != null) {
    console.log(match[1]);
} else {
    console.log("Doesn't match")
}
0 голосов
/ 03 декабря 2018

Вы можете попробовать это

let str = "B01234567TXXX";

let reg = /(?<=B)\d{8}/g

console.log(str.match(reg));
console.log("B012345670020".match(reg));

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...