字符串看起来像这样
"blabla blabla-5 amount-10 blabla direction-left"
如何在"amount-"
之后和"direction-"
之后的文字中获取数字?
答案 0 :(得分: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)
答案 1 :(得分: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的结果是否为非null。
答案 2 :(得分:6)
您可以按照by w3schools的说明使用正则表达式。提示:
str = "blabla blabla-5 amount-10 blabla direction-left"
alert(str.match(/amount-([0-9]+)/));
其他你可以简单地想要所有数字,所以只使用模式[0-9] +。 str.match将返回一个数组。