Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.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,因此,我希望使用Javascript和正则表达式从如下字符串中获取特定的数值:*13**67*value## 所以从 *#13**67*2## *#13**67*124## *#13**67*1## 我需要2,124和1。任何帮助都将不胜感激。谢谢 这个怎么样: var regex = /^\*\#\d{2}\*{2}\d{2}\*(\d+)\#{2}$/; var value = '*#13**67*124##'.match(regex)[1]; // value will be 124

因此,我希望使用Javascript和正则表达式从如下字符串中获取特定的数值:*13**67*value##

所以从

*#13**67*2##
*#13**67*124##
*#13**67*1##
我需要2,124和1。任何帮助都将不胜感激。谢谢

这个怎么样:

var regex = /^\*\#\d{2}\*{2}\d{2}\*(\d+)\#{2}$/;
var value = '*#13**67*124##'.match(regex)[1]; // value will be 124

如果字符串始终采用此格式,请匹配字符串末尾的数字

var r = '*#13**67*124##'.match(/\d+(?=#+$)/);
if (r)
    console.log(r[0]); // => "124"
多行匹配:

var s = '*#13**67*2##\n*#13**67*124##\n*#13**67*1##',
    r = s.match(/\d+(?=#+$)/gm)

console.log(r); // => [ '2', '124', '1' ]
也许
split
ting字符串

var r = '*#13**67*124##'.split(/[*#]+/).filter(Boolean).pop()
console.log(r); // => "124"

这是一个使用regex lookahead的好例子

您可以使用此正则表达式:

\d+(?=##)

如果您分享您迄今为止尝试过的是一个多行字符串,或三个单独的字符串,这将有助于激发潜在的海报。i标志是冗余的,为什么parseInt?
parseInt()
将其作为数字返回,这可能是必需的,也可能不是必需的,是的,
i
标志是冗余的。
\d+(?=##)