我想要正则表达式只获取数字

时间:2011-08-09 05:06:26

标签: javascript asp.net regex

我希望正则表达式只能从字符串中获取数字。我想忽略前面带有字符的数字。 示例:“(a /(b1 / 8))* 100 在这里,我不想取b1。我想只得到8,100等数字

4 个答案:

答案 0 :(得分:4)

您可以使用word boundary,但在下划线后不匹配:

\b\d+

答案 1 :(得分:1)

(?<![a-zA-Z])\d+应该有效

答案 2 :(得分:1)

您可以使用正则表达式查找带有和不带前导字符的数字,并且只保留不带前导字符的数字:

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

演示:http://jsfiddle.net/Guffa/23BnQ/

答案 3 :(得分:0)

仅限数字

 ^(\d ? \d* : (\-?\d+))\d*(\.?\d+:\d*) $

这将接受任何数值包括-1.4,1.3,100,-100

我在asp net中检查了我的自定义数字验证属性