在JavaScript中从字符串返回整数

在JavaScript中从字符串返回整数,javascript,regex,Javascript,Regex,所以我有下面的字符串 var str = "Ana has 27 apples"; 是否有任何函数只能将str中的数字27作为整数返回 我在这里找到了一条关于类似这样的东西的老线索,但它是关于Java的。然而,这让我陷入了困境 我继续试着玩这个,但没有像我预期的那样。。 这是我来这里之前尝试的最后一个表达: var str=“安娜有27个苹果”; var regex=/([0-9])\d+/; var-ret=str.match(regex); 控制台日志(ret)给你: match(/\d

所以我有下面的字符串

var str = "Ana has 27 apples";
是否有任何函数只能将
str
中的数字27作为整数返回

我在这里找到了一条关于类似这样的东西的老线索,但它是关于Java的。然而,这让我陷入了困境

我继续试着玩这个,但没有像我预期的那样。。 这是我来这里之前尝试的最后一个表达:

var str=“安娜有27个苹果”;
var regex=/([0-9])\d+/;
var-ret=str.match(regex);
控制台日志(ret)给你:

match(/\d+/)[0]
regex将帮助您获取
数字作为字符串,然后使用获取整数

检查以下工作示例:

var str=“安娜有27个苹果”;
var num=str.match(/\d+/)[0];
log(parseInt(num))给你:

match(/\d+/)[0]
regex将帮助您获取
数字作为字符串,然后使用获取整数

检查以下工作示例:

var str=“安娜有27个苹果”;
var num=str.match(/\d+/)[0];

log(parseInt(num))
您可以使用
parseInt
将数字字符串转换为数字

const str=“安娜有27个苹果”;
const num=str.match(/\d+/)[0];

log(parseInt(num,10))
您可以使用
parseInt
将数字字符串转换为数字

const str=“安娜有27个苹果”;
const num=str.match(/\d+/)[0];

log(parseInt(num,10))
在REGEXP上添加
g
,以进行全局匹配

var regex = /([0-9])\d+/g;
希望这有帮助:>
var str=“安娜有27个苹果”;
var regex=/([0-9])\d+/g;
var-ret=str.match(regex);

console.log(ret)
在REGEXP上添加
g
,以进行全局匹配

var regex = /([0-9])\d+/g;
希望这有帮助:>
var str=“安娜有27个苹果”;
var regex=/([0-9])\d+/g;
var-ret=str.match(regex);
console.log(ret)
它返回27,2,但我不想返回2

有关以下内容,请参阅文档:

它将返回一个数组,其中包含作为第一个元素的整个匹配字符串,后跟括号中捕获的任何结果

因此,
27
是整个匹配,
2
来自捕获组
[0-9]

您可能希望改为
/(\d+)/
(然后使用
ret[1]
从数组中提取匹配项)

我绝对不想把它当作字符串

这就是
parseInt
parseFloat
和的用途

它返回27,2,但我不想返回2

有关以下内容,请参阅文档:

它将返回一个数组,其中包含作为第一个元素的整个匹配字符串,后跟括号中捕获的任何结果

因此,
27
是整个匹配,
2
来自捕获组
[0-9]

您可能希望改为
/(\d+)/
(然后使用
ret[1]
从数组中提取匹配项)

我绝对不想把它当作字符串


这就是
parseInt
parseFloat
的目的。

与其他答案提供的方法不同的是,只需从字符串中删除所有非数字字符,剩下的将是任何数字

function numericOnly(str) {
    return parseInt(str.replace(/\D+/g,''));
}
请注意,这仅在您知道字符串中只有一个数字时才有用。一些示例结果:

console.log(numericOnly('Ana has 27 apples')); // 27
console.log(numericOnly('Ana has 27 apples and 42 oranges')); //2742
console.log(numericOnly('Ana has no apples')); // NaN

与其他答案提供的方法不同的是,只需从字符串中删除所有非数字字符,那么剩下的将是任何数字

function numericOnly(str) {
    return parseInt(str.replace(/\D+/g,''));
}
请注意,这仅在您知道字符串中只有一个数字时才有用。一些示例结果:

console.log(numericOnly('Ana has 27 apples')); // 27
console.log(numericOnly('Ana has 27 apples and 42 oranges')); //2742
console.log(numericOnly('Ana has no apples')); // NaN

只需修改代码,如下所示

你只能得到27分

var str = "Ana has 27 apples";
    var regex = /\d+/;
    var ret = str.match(regex);
    console.log(ret);

只需修改代码,如下所示

你只能得到27分

var str = "Ana has 27 apples";
    var regex = /\d+/;
    var ret = str.match(regex);
    console.log(ret);
只需执行
/(\d+)/g
,即可返回所有整数分组

您只需执行
/(\d+)/g
即可返回所有整数分组


如果要从字符串中提取字符串并将其转换为数值,必须先提取它,然后再转换它——这是没有办法的。该功能可以封装在一个函数中,因此主线代码不必考虑它。现在你正在捕获两个整型块,但我不知道你为什么要这么做。你得到的不是一个字符串,而是一个包含两个值的数组。说明:“如果字符串与表达式匹配,它将返回一个数组,其中包含整个匹配字符串作为第一个元素,后跟括号中捕获的任何结果。如果没有匹配项,则返回null。”
/\d+//g
将匹配字符串中的多组数字并返回结果,同样在数组中-请参阅。如果需要,您可以使用parseInt转换每个字符串。如果您想从字符串中提取字符串并将其转换为数值,您必须先提取它,然后再转换它--这是没有办法的。该功能可以封装在一个函数中,因此主线代码不必考虑它。现在你正在捕获两个整型块,但我不知道你为什么要这么做。你得到的不是一个字符串,而是一个包含两个值的数组。说明:“如果字符串与表达式匹配,它将返回一个数组,其中包含整个匹配字符串作为第一个元素,后跟括号中捕获的任何结果。如果没有匹配项,则返回null。”
/\d+//g
将匹配字符串中的多组数字并返回结果,同样在数组中-请参阅。如果需要,您可以使用parseInt转换每一个。