Подтвердить что ты не робот

Javascript/Jquery - получить номер из строки

строка выглядит так:

"blabla blabla-5 amount-10 blabla direction-left"

Как я могу получить номер сразу после "amount-", а текст сразу после "direction-"?

4b9b3361

Ответ 1

Здесь используются регулярные выражения и метод exec:

var s = "blabla blabla-5 amount-10 blabla direction-left";
var amount = parseInt(/amount-(\d+)/.exec(s)[1], 10);
var direction = /direction-([^\s]+)/.exec(s)[1];

Код вызовет ошибку, если сумма или направление отсутствуют; если это возможно, проверьте, не является ли результат exec не нулем перед индексированием в массив, который должен быть возвращен.

Ответ 2

Это приведет к тому, что все числа будут разделены комой:

var str = "10 is smaller than 11 but greater then 9";
var pattern = /[0-9]+/g;
var matches = str.match(pattern);

После выполнения строка matches будет иметь значения "10,11,9"

Если вы ищете только первое вхождение, шаблон будет /[0-9]+/ - который вернет 10

(JQuery не требуется)

Ответ 3

Вы можете использовать regexp, как описано w3schools. Подсказка:

str = "blabla blabla-5 amount-10 blabla direction-left"
alert(str.match(/amount-([0-9]+)/));

В другом случае вы можете просто хотеть, чтобы все числа использовали шаблон [0-9] +. str.match вернет массив.