我有一个带有几个单词的变量,后面跟一个数字,我怎样才能得到一个单词之后的某个数字?
例如,如果我有:
var a = "books23 birds47 cars38";
如何通过查看“鸟类”这个词来获得数字47?更清楚的是,如何获得“鸟类”之后的数字?
答案 0 :(得分:3)
你可以这样做:
var nums = a.split(' ').map(function(b) {
return b.match(/[0-9]+/g)[0];
});
现在这些nums实际上是字符串,如果你想让它们成为数字,请执行以下操作:
var numbers = nums.map(Number);
答案 1 :(得分:2)
另一种方便地将匹配存储在对象中的解决方案:
var a = "books23 birds47 cars38";
var things = {};
a.split` `.map(function(x){
things[x.match(/[a-z]+/g)[0]] = x.match(/[0-9]+/g)[0];
})
console.log(things.books);
console.log(things.birds);
console.log(things.cars);

答案 2 :(得分:1)
"在一个单词之后" - 如果它是一个固定的单词,你可以使用包含单词本身的正则表达式:
var num = /birds(\d+)/.exec(a)[1];
[1]
告诉它提取组(\d+)
,这意味着一个或多个数字的字符串。
这也会匹配bigbirds47
之类的内容。您可以使用\b
指定它必须位于单词边界:
var num = /\bbirds(\d+)/.exec(a)[1];
如果你想让它用于其他单词,你可以从这样的字符串构建一个正则表达式模式:
var word = "birds";
var num = new RegExp("\\b"+word+"(\\d+)").exec(a)[1];
答案 3 :(得分:1)
您可以使用棘手的函数从字符串中收集所有名称:值对。
<ion-list>
<ion-item *ngFor="let person of dataService.observableList | async">
{{person.name}}
</ion-item>
</ion-list>