这将符合我的要求:
/\d+\.\d+/
这将在字符串的开头匹配:
/^\d+\.\d+$/
这个用于单词边界:
/\b\d+\.\d+\b/
我希望匹配这样的数字:
1.00000 // true
1.0000 // true
1.0000 // true
bla1.0000 // true
1.0000bla // true
27.05.1989 // false (date)
答案 0 :(得分:2)
您只能在以下正则表达式的帮助下实现这一目标:
(?:^|[^\d.])(\d+\.\d+)(?![.\d])
请参阅regex demo
var re = /(?:^|[^\d.])(\d+\.\d+)(?![.\d])/gm;
var str = '1.00000\n // true\n1.0000\n // true\nbla1.0000\n // true\n27.05.1989\n // false (date)';
var m;
while ((m = re.exec(str)) !== null) {
document.getElementById("r").innerHTML += m[1] + "<br/>";
}
&#13;
<div id="r"/>
&#13;
正则表达式解释:
(?:^|[^\d.])
- 匹配字符串start(^
)或除数字和字面点以外的字符(\d+\.\d+)
- 匹配并捕获到第1组1个或更多数字后跟一个文字点后跟一个或多个数字(?![.\d])
- 确保浮动值后没有.
或数字