Javascript/Jquery - получить номер из строки
строка выглядит так:
"blabla blabla-5 amount-10 blabla direction-left"
Как я могу получить номер сразу после "amount-"
, а текст сразу после "direction-"
?
Ответы
Ответ 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 вернет массив.