Javascript / Jquery - Получить номер из строки - PullRequest
12 голосов
/ 18 октября 2010

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

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

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

Ответы [ 3 ]

38 голосов
/ 18 октября 2010

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

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 не нужен)

17 голосов
/ 18 октября 2010

При этом используются регулярные выражения и 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 ненулевым, прежде чем индексировать в массив, который должен быть возвращен.

6 голосов
/ 18 октября 2010

Вы можете использовать регулярные выражения, как объяснено w3schools . Подсказка:

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

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

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