首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Javascript中从字符串中提取多个整数

在Javascript中从字符串中提取多个整数
EN

Stack Overflow用户
提问于 2011-12-08 02:57:15
回答 5查看 2K关注 0票数 4

我正在尝试设置我的页面,以便用户能够输入类似"25a89ss15s9 8 63“的字符串,它会提醒用户"25,89,15,9,8,63”,然后进一步提醒用户"8,9,15,25,63,89“。因此,我尝试将整数与指定的字符串分开,然后对它们进行排序。你有什么想法可以把它们分成一个数组或者更接近的数组吗?我试过几个类似问题的例子,但它们似乎只适用于一个整数。

任何帮助都会很感谢,谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-12-08 02:59:04

代码语言:javascript
复制
var string = "25a89ss15s9 8 63"; // Input
var list = string.match(/\d+/g); // Get a list of all integers
list.sort(function(x,y){         // Sort list
    return x - y;
});
// At this point, you have a sorted list of all integers in a string.

这段代码使用了一个RegEx (\d+表示:所有连续的数字=整数,/g表示:选择所有出现的项)。String.match()方法返回一个包含所有匹配短语的数组,在本例中为整数。

最后,调用Array.sort方法,将一个函数作为参数传递,该函数对数组进行排序。

票数 10
EN

Stack Overflow用户

发布于 2011-12-08 03:00:45

您可以使用正则表达式解析出所有数字:

代码语言:javascript
复制
/\d+/g

(一个或多个数字,g表示“所有事件”)

然后,您可以对它们进行排序,但请确保使用自定义函数来避免字典序排序(这是默认设置):

代码语言:javascript
复制
var numbers = "25a89ss15s9 8 63".match(/\d+/g).sort(function(a, b) {return a - b});

您可以像这样发出警报:

代码语言:javascript
复制
alert("The numbers are: " + numbers.join(", "));
票数 2
EN

Stack Overflow用户

发布于 2011-12-08 03:01:42

试试这个:

代码语言:javascript
复制
var s = "25a89ss15s9 8 63";
var xs = s.match(/\d+/g); // => ["25", "89", "15", "9", "8", "63"]
xs.sort(function(x,y) { return x - y; });
xs.join(", "); // => "8, 9, 15, 25, 63, 89"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8420890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档