我正在创建一个带有onChange函数的输入框,该函数将检查字符是否只是数字,并且只允许最多一个句点/点'。'
我在这里的功能不起作用:
function addPercentSeparator(n) {
let str = n;
let match = str.match(/\d*\.\d*/)
if (match) {
return str;
}
}
我也尝试过:let match = str.match(/^([0-9]+(\.[0-9]+)?)/)
我想要实现的只是允许一个时期。 如果用户输入的数字没有句点,则当他们在输入框外单击时,会在字符串末尾附加句点。
答案 0 :(得分:1)
This正则表达式应该可以解决问题:
^\d*\.?\d*$
但如果你问我,我会确保使用^\d+\.?\d*$
之前有之前的数字。
的说明:强>
?
,表示“0或1次出现”。^
和$
,以确保如果整个字符串都是非法的,则不会匹配字符串的任何部分。我希望这适合你!