2010-10-17 2 views
12

строка выглядит следующим образомJavascript/Jquery - Получить номер строки из

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

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

+2

Fol опустив какое правило? Извлечь все числа? Каков желаемый результат, массив? –

+0

нет, просто число/строка после этих параметров. вывод должен быть строкой – Alex

ответ

17

regular expressions Это использует и exec method:

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

+0

спасибо, что это было :) – Alex

6

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

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

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

+2

Uh-oh http://w3fools.com/ –

38

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

 
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)

+0

Это самый эффективный способ. Благодаря! –

Смежные вопросы