Javascript 我希望正则表达式只获取数字

Javascript 我希望正则表达式只获取数字,javascript,asp.net,regex,Javascript,Asp.net,Regex,我希望正则表达式只从字符串中获取数字。我希望忽略前面带有字符的数字。 例如:“(a/(b1/8))*100 这里我不想取b1。我只想得到像8100等数字(?应该只对数字有效 ^(\d ? \d* : (\-?\d+))\d*(\.?\d+:\d*) $ 这将接受任何数字值,包括-1.4、1.3、100、-100 我在asp net中检查了自定义数字验证属性,您可以使用,但下划线后不匹配: \b\d+ 您可以使用正则表达式查找带或不带前导字符的数字,并仅保留不带以下字符的数字: var st

我希望正则表达式只从字符串中获取数字。我希望忽略前面带有字符的数字。 例如:“(a/(b1/8))*100 这里我不想取b1。我只想得到像8100等数字(?应该只对数字有效

 ^(\d ? \d* : (\-?\d+))\d*(\.?\d+:\d*) $
这将接受任何数字值,包括-1.4、1.3、100、-100

我在asp net中检查了自定义数字验证属性,您可以使用,但下划线后不匹配:

\b\d+

您可以使用正则表达式查找带或不带前导字符的数字,并仅保留不带以下字符的数字:

var str = "(a/(b1/8))*100";
var nums = [], s;
var re = /([a-z]?)(\d+)/g;
while (s = re.exec(str)) {
  if (!s[1].length) nums.push(s[2]);
}

alert(nums);
输出:

8, 100

演示:

JavaScript没有负面外观印度抱歉……我忘了JavaScript正则表达式很差……但对asp.net来说仍然很好,不是吗?为什么要同时使用JavaScript和asp.net来标记它?您需要一个同时适用于这两种或至少适用于其中一种的解决方案吗?这对问题中的示例来说效果如何?答案是肯定的应该从
(a/(b1/8))*100
@Ray中提取
8
100
-谢谢,非常优雅。我可能应该提供一个替代方案…我只是指出了警告。我真的不知道OP在做什么-也许☃imran想忽略下划线。也许不是。这是生命的奥秘之一。我认为OP希望正则表达式不包含数字(整数)来自表达式的文字,因此希望避免出现在标识符中的数字。当然,我们在现实生活中会使用lexer,因为正则表达式会在注释中提取这些内容。不过,我不认为这是一个糟糕的问题。它似乎因糟糕的英语而被否决,这是不幸的。