Javascript 什么';这个代码只允许数字和句点有什么问题?

Javascript 什么';这个代码只允许数字和句点有什么问题?,javascript,jquery,regex,html,dojo,Javascript,Jquery,Regex,Html,Dojo,我有下面的HTML代码,将只接受数字,而不是字母。我希望它也能接受句号。这个怎么了?我不想使用不同的jQuery或javascript函数来调用按键。我想用我以前用过的方法,但也应该留出一段时间。怎么用?谢谢 <input onkeypress="return /\d/.test(String.fromCharCode(((event||window.event).which|| (event||window.event).which)));" ondrop="return fal

我有下面的HTML代码,将只接受数字,而不是字母。我希望它也能接受句号。这个怎么了?我不想使用不同的jQuery或javascript函数来调用按键。我想用我以前用过的方法,但也应该留出一段时间。怎么用?谢谢

<input onkeypress="return /\d/.test(String.fromCharCode(((event||window.event).which||    (event||window.event).which)));" 
ondrop="return false" onpaste="return false" maxlength="8" type="text" />

只需将
\d
放在字符类中,使其与数字或点匹配即可

[\d.]

你的意思是“onkeypress=“return^[\d.]+$/\d/.test(String.fromCharCode)((event | | window.event)。which | |(event | | | window.event)。which”);”?不,
/^[.\d]+$/。test
他们正在测试转换成简单字符串的单个击键字符。不需要像正则表达式中那样多。可以只做
[\d.]
@AvinashRaj,在具有相同代码的文本框中只允许单个点,而不允许任何其他符号-
/^[.\d]+$/。test
我想下面的方法应该行得通
^\d+(?:\.\d+)$
只需
/^\d+(?:\.\d+)$/
使用此正则表达式并检查整个字符串,而不是逐字符检查。这允许整数和浮点数。要仅允许浮点,您需要删除最后一个
符号.with
“return/^\d+(?:\.\d+)$/.test(String.fromCharCode)((event | | window.event).which | |(event | | window.event).which));”
它不接受点或任何其他符号。针对整个字符串测试正则表达式。这不允许只使用一个点。