Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.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=http://www.myurl.com/45/abc/12345/place/123456 使用正则表达式,如何在该字符串中的任何位置找到最长的后续数字模式 输出应该是123456,就好像我知道确切的长度一样: mystring.match(/\d{6}/g); 提取所有数字序列,然后在结果数组中找到最长的 function byLength(a,b) { return a.length > b.length ? -1 : a.length

我有一个字符串:

var mystring=http://www.myurl.com/45/abc/12345/place/123456

使用正则表达式,如何在该字符串中的任何位置找到最长的后续数字模式

输出应该是
123456
,就好像我知道确切的长度一样:

mystring.match(/\d{6}/g);

提取所有数字序列,然后在结果数组中找到最长的

function byLength(a,b) { return a.length > b.length ? -1 : a.length == b.length ? 0 : 1 }
var digit_sequences = mystring.match(/(\d+)/g).sort(byLength)
digit_sequences[0] // '123456'

提取所有数字序列,然后在结果数组中找到最长的

function byLength(a,b) { return a.length > b.length ? -1 : a.length == b.length ? 0 : 1 }
var digit_sequences = mystring.match(/(\d+)/g).sort(byLength)
digit_sequences[0] // '123456'

问题在于,正则表达式本身在匹配操作期间匹配文本块,而不自行跟踪匹配。不可能仅用正则表达式匹配最长的数字块

提取所有数字块,然后按降序对值进行排序,并获取第一项:

var mystring=”http://www.myurl.com/45/abc/12345/place/123456";

log(mystring.match(/\d+/g).sort(函数(a,b){返回b.length-a.length;})[0])问题在于,正则表达式本身在匹配操作期间匹配文本块,而不自行跟踪匹配。不可能仅用正则表达式匹配最长的数字块

提取所有数字块,然后按降序对值进行排序,并获取第一项:

var mystring=”http://www.myurl.com/45/abc/12345/place/123456";

log(mystring.match(/\d+/g).sort(函数(a,b){返回b.length-a.length;})[0])以下是一个可能的解决方案:

console.log( mystring.match(/\d+/g).sort((a, b) => b - a)[0] );

下面是一个可能的解决方案:

console.log( mystring.match(/\d+/g).sort((a, b) => b - a)[0] );