Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用正则表达式从字符串中查找最大数_Javascript_Regex - Fatal编程技术网

Javascript 使用正则表达式从字符串中查找最大数

Javascript 使用正则表达式从字符串中查找最大数,javascript,regex,Javascript,Regex,我有一个变量字符串,如: var myString = "857nano620348splitted3412674relation5305743"; 如何从中找到最大的数字 我像下面这样试过,但没有成功 var matches = myString.match(/d+/g); 我会去的 var myString = "857nano620348splitted3412674relation5305743"; var largest = Math.max.apply(null, myStri

我有一个变量字符串,如:

var myString = "857nano620348splitted3412674relation5305743";
如何从中找到最大的数字

我像下面这样试过,但没有成功

var matches = myString.match(/d+/g);
我会去的

var myString = "857nano620348splitted3412674relation5305743";
var largest  = Math.max.apply(null, myString.match(/\d+/g));


myString.match(/\d+//g)
返回一个数字数组,使用
Math.max.apply(scope,array)
返回该数组中的最大数字。

您可以使用以下解决方案使用正则表达式从字符串中查找最大数字:

var numArray = xmr.match(/\d+/g); //this will store all numbers from xmr to numArray.

numArray.sort(function(a,b){return a-b});

var largest = numArray[numArray.length - 1];
var myString ="857nano620348splitted3412674relation5305743";

Math.max(...myString.match(/\d+/g))`

基本上,用正则表达式查找所有匹配项,对匹配项进行数字排序(或在列表中查找最大值),输出最大值。除了解决此问题的挑战之外。。。我想知道。。。你为什么要这么做?@scunlife我是个新手,一个随机的想法出现了。抱歉,如果我违反了提问规则。变量名
xmr
代表什么,或者完全是任意的?@scunlife谢谢你。但我确实有一天会解决一个现实世界中的代码问题,如果我到了那里。我想单是这个答案就可以让adeneo达到10万:)是的,这确实有帮助。不幸的是,我们必须再等7分钟才能接受答案。@ErikAllik-这通常只是运气,一些伟大的答案永远不会被高估和遗忘,而有时一个简单简洁的工作答案会被高估很多,有时甚至非工作答案也会被高估很多。这是一个奇怪的地方,在这里如此。@anubhava-不幸的是,有一个每天200次的限制,所以可能不是!是的,我知道200个限制,但它可能会很快给你一个金徽章。有一个问题,
array.sort
不是那样的数字排序,因此数组的排序方式并不正确。这是因为
array.sort()
将每个元素转换为字符串,并按字典顺序排序。这种方法仍然可以使用提供给
array.sort()
的自定义排序函数来执行数字排序。是的,您完全正确……要使其下降,您可以将函数更改为“function(a,b){return b-a}”…+1,现在它可以工作了!作为旁注,您可以执行
var max=numArray.pop(),看起来更漂亮。嗨!虽然这是必须的,但代码似乎是不言自明的,很好地提供一些解释,说明这是如何解决问题的。@Erubiel谢谢。下次我会添加解释表