javascript匹配正则数字且只有点字符

时间:2018-03-22 04:22:28

标签: javascript regex numbers decimal special-characters

我需要将Regex与输入文本进行匹配。它应该只允许数字,只允许一个点。

以下是我的照片。

(?!\s)[0-9\.\1]{0,}

这只允许数字并允许多个点。怎么写,以便它只允许一个点?

基本上当我输入十进制时,我需要四舍五入到整数。

2 个答案:

答案 0 :(得分:1)

如果你不介意只接受一个观点,那就应该这样做

\d*\.\d*

否则,更完整的答案可能如下所示:

\d*\.\d+)|(\d+\.\d*)

答案 1 :(得分:-1)

您可以使用以下正则表达式来选择整数和小数部分,而不是根据小数部分将1加到整数部分:

正则表达式:^(\d+)\.(\d+)$

使用中:

function roundOff(str) {
  return str.replace(/^(\d+)\.(\d+)$/g, ($0, $1, $2) => $2.split('')[0] >= 5 ? parseInt($1) + 1 : parseInt($2)); 
}

var str1 = roundOff('123.123') 
console.log(str1); // 123

var str2 = roundOff('123.567')
console.log(str2); // 124