Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅允许整数和小数的正则表达式,无需精度_Javascript_Regex_Jsp - Fatal编程技术网

Javascript 仅允许整数和小数的正则表达式,无需精度

Javascript 仅允许整数和小数的正则表达式,无需精度,javascript,regex,jsp,Javascript,Regex,Jsp,这是一篇重复的文章,虽然要求有点不同,但我想知道一个只允许十进制数的正则表达式。在这里找到了类似的解决方案 但解决方案中有一个逗号 我根本不需要正则表达式中的逗号 /^[0-9]+([\,\.][0-9]+)?$/g; answer found on the site 我根据帖子中的解释运用了我的逻辑 /^[0-9]+([\.][0-9]+)?$/g; My modification 还有别的办法吗 这是正确的呼叫方式: var regex = new RegExp(/^[0-9]*([\

这是一篇重复的文章,虽然要求有点不同,但我想知道一个只允许十进制数的正则表达式。在这里找到了类似的解决方案

但解决方案中有一个逗号

我根本不需要正则表达式中的逗号

/^[0-9]+([\,\.][0-9]+)?$/g; answer found on the site
我根据帖子中的解释运用了我的逻辑

/^[0-9]+([\.][0-9]+)?$/g; My modification

还有别的办法吗

这是正确的呼叫方式:

var regex = new RegExp(/^[0-9]*([\.][0-9]+)?$/g);
console.log(regex.test('0.85'));  // true
console.log(regex.test('0,85'));  // false
console.log(regex.test('.35'));   // true  
console.log(regex.test(''));      // false   
console.log(regex.test('.'));     // false
console.log(regex.test('4'));     // true
我建议对正则表达式进行一些修改,我已将第一个块的多重性更改为
零或更多
,因此
.35
将被视为有效,正如您在上面的注释中所问


是一个plunker。

您运行的是java还是javascript?它应该满足您的要求。编写相同表达式的一种稍微简洁的方法是使用:
/^\d+(\.\d+)?$/g
。在正则表达式语法中,
\d
[0-9]
相同。您有什么错误?在这种情况下,您需要将
/^\d+(\.\d+)$/g
替换为
/^\d*(\.\d+)$/g
@marianoc84的答案从技术上讲解决了一些我没有解决的问题。此外,我们的答案之间没有重大差异,因此我不认为如果我发布另一个答案,会添加任何有用的内容。重要的是问题的答案是正确的:)。零或更多,我很抱歉sorry@npinti谢谢你的回复……:)/^\d*(\。\d+)?$/g