Javascript正则表达式匹配被其他字符污染的小数

标签 javascript regex

我正在尝试匹配以下示例中的第一组数字。

some stuff (6 out of 10 as a rating) 

需要返回6

some stuff (2.3 out of 10 as a rating)    

需要返回2.3

some stuff (10 out of 10 as a rating)  

需要返回10

此外,有时字符串不会有数字

some stuff but nothing else

最佳答案

var match = /\d+(\.\d+)?/.exec("some stuff (10 out of 10 as a rating)");
alert(match[0]);
  • \d 匹配任何数字,0-9
  • + 表示 1 个或多个
  • \. 匹配 .
  • ? 表示 0 或 1

所以总的来说,它意味着任意数量的数字(0-9),可选地后跟一个小数点,后跟 1 个或更多数字。

作为函数:

var getFirstNumber = function(input){
     var match = /\d+(\.\d+)?/.exec(input);
    return match[0];
};

关于Javascript正则表达式匹配被其他字符污染的小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7627145/

相关文章:

JavaScript:提取电子邮件地址的一部分并分成几部分

regex - subRegex 的 PCRE 版本

regex - R 正则表达式 : unexpected behavior of "[:digit:]"

javascript - 给定纬度和经度,在 D3 地理投影上绘制点

javascript - Vue.js 无法挂载组件 : template or render function not defined

javascript - 使用过滤器根据类别显示项目

python - 正则化网页中的行

javascript - 使用具有高级优化功能的 Closure 编译器时如何在 javascript 中保留全局变量?

javascript - Ajax Success 调用后更新 span 标签时出现问题

java - 验证字符串为空或 null 的最佳方法