我需要将Regex与输入文本进行匹配。它应该只允许数字,只允许一个点。
以下是我的照片。
(?!\s)[0-9\.\1]{0,}
这只允许数字并允许多个点。怎么写,以便它只允许一个点?
基本上当我输入十进制时,我需要四舍五入到整数。
答案 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