javascript - 正则表达式仅接受正数和小数(仅以 .5 .0 或可接受的整数结尾)

标签 javascript regex

我需要一个 JavaScript 正则表达式,它只接受正数和以 .5 或 .0 结尾的小数。

(^\d*\.?\d*[1-9]+\d*$)|(^[1-9]+\d*\.\d*$)

这就是我所拥有的,但我不知道如何将其更改为拒绝 0 和 0.0,并拒绝以 .1 .2 .3 .4 .6 .7 .8 .9 结尾的那些

Accept:
0.5
1.0
1.5
2.0
2.5
3.0
1
2
3
4

但是

Reject:
-1.0
-0.5
-0.0
-0.1
-0.7
0
0.0
0.1
0.9
0.4
1.3
1.11
1.51
2.01

最佳答案

将数字乘以 2,看是否为整数:

function check(v) {
  return v > 0 && !(v*2 % 1);
}

var tests = [
  0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 1, 2, 3, 4,
  -1.0, -0.5, -0.0, -0.1, -0.7, 0.0, 0.1, 0.9, 0.4, 1.3, 1.11, 1.51, 2.01];

tests.forEach(v => console.log(v, check(v) ? "passes": "fails"));

关于javascript - 正则表达式仅接受正数和小数(仅以 .5 .0 或可接受的整数结尾),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38237174/

相关文章:

javascript - Jasmine 测试运行器与 visual studio 的集成和构建过程

php - preg_replace : bad regex == 'Unknown Modifier' ?

regex - 为什么在我的页面上打印Doctype?

javascript - 正则表达式匹配除括号中的所有单词 - javascript

javascript - 有没有办法让 JS 引擎加载一个 .js 文件而不显式地从它导入一些东西?

javascript - 数组中内置Symbol.asyncIterator

javascript - React 中的过滤器列表

javascript - 使用 less.js 获取更少的变量列表

python - 找出正则表达式满足句子的位置

regex - subRegex 的 PCRE 版本