Regex с помощью JavaScript для возврата просто чисел

Если я правильно понял ваш вопрос, я думаю, вы хотите просто взять строку, отделить последнее имя каталога и затем использовать его в качестве переменной при настройке вашего zip-файла:

@echo off
set "mypath=C:\TEMP\zip\source\JEAR_20190115"
if "%mypath:~-1%"=="\" set "mypath=%mypath:~0,-1%"
for %%i in (%mypath%) do set "last=%%~nxi"
CScript zip.vbs %mypath% C:\TEMP\zip\target\%last%.zip

Пожалуйста, примите обратите внимание, если вы измените свой путь, чтобы иметь обратную косую черту на вашем пути, то есть:

C:\TEMP\zip\source\JEAR_20190115\

Вы могли бы сначала избавиться от этого, но мы могли бы просто проверить это с помощью:

[112 ]

Таким образом, полный сценарий будет выглядеть следующим образом:

@echo off
set "mypath=C:\TEMP\zip\source\JEAR_20190115"
if "%mypath:~-1%"=="\" set "mypath=%mypath:~0,-1%"
for %%i in (%mypath%) do set "last=%%~nxi"
CScript zip.vbs %mypath% C:\TEMP\zip\target\%last%.zip

если, однако, если вы хотите присвоить ему имя файла в каталоге, вам необходимо убедиться, что все имена файлов в папке все то же самое, поскольку мы сможем установить его только с одним именем, которое будет последним файлом в списке, мы можем проверить каждое имя, но я предполагаю, что у вас есть файлы с одинаковым именем, но с разными расширениями:

@echo off
set "mypath=C:\TEMP\zip\source\JEAR_20190115"
for /f %%i in ('dir /b /a-d "%mypath%"') do set "last=%%~ni"
CScript zip.vbs %mypath% C:\TEMP\zip\target\%last%.zip
117
задан Peter DeWeese 8 February 2018 в 21:07
поделиться

6 ответов

Регулярные выражения:

var numberPattern = /\d+/g;

'something102asdfkj1948948'.match( numberPattern )

Это вернет объект с двумя элементами внутри: '102' и '1948948' . Действуйте как хотите. Если он не соответствует ни одному, он вернет null.

Предполагая, что вы не имеете дело со сложными десятичными знаками, я полагаю, этого должно быть достаточно.

199
ответ дан 24 November 2019 в 02:00
поделиться

ПОПРОБУЙТЕ ЭТОГО:

var result = input.match(/\d+/g).join([])
1
ответ дан 5 October 2019 в 23:38
поделиться

Все, что другие решения имеют, но с небольшой проверкой

// value = '675-805-714'
const validateNumberInput = (value) => { 
    let numberPattern = /\d+/g 
    let numbers = value.match(numberPattern)

    if (numbers === null) {
        return 0
    }  

    return parseInt(numbers.join([]))
}
// 675805714
0
ответ дан 24 November 2019 в 02:00
поделиться

Вы также можете удалить все нецифровые символы ( \ D или [^ 0-9] ):

 let word_With_Numbers = 'abc123c def4567hij89' пусть word_Without_Numbers = word_With_Numbers.replace (/ \ D / g, ''); console.log (word_Without_Numbers) 
184
ответ дан 24 November 2019 в 02:00
поделиться

Думаю, вы хотите получить число (а) из строки. В этом случае вы можете использовать следующее:

// Returns an array of numbers located in the string
function get_numbers(input) {
    return input.match(/[0-9]+/g);
}

var first_test = get_numbers('something102');
var second_test = get_numbers('something102or12');
var third_test = get_numbers('no numbers here!');

alert(first_test); // [102]
alert(second_test); // [102,12]
alert(third_test); // null
9
ответ дан 24 November 2019 в 02:00
поделиться

Приведенные ответы на самом деле не соответствуют вашему вопросу, что подразумевает завершающее число. Также помните, что вы получаете обратно строку; если вам действительно нужно число, приведите результат:

item=item.replace('^.*\D(\d*)$', '$1');
if (!/^\d+$/.test(item)) throw 'parse error: number not found';
item=Number(item);

Если вы имеете дело с числовыми идентификаторами элементов на веб-странице, ваш код также может с пользой принять элемент , извлекая число из его id (или его первого родителя с id ); если у вас под рукой событие , вы, вероятно, также сможете получить из него элемент .

2
ответ дан 24 November 2019 в 02:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: