javascript用户';输入验证
我正在创建一个需要验证用户输入的程序 用户应该能够写浮点数和一些字母,如千的“k”或百万的“m”。允许为:数字,列表中只有一个字母(g、k、m、n、u),十进制数字只有一个“.”。如果用户放置不同的符号,列表中的两个字母,两个点,紧跟着另一个符号-文本框中不显示任何内容 到目前为止,我所做的根本不起作用。我甚至不能用允许的符号创建一个列表。我怎样才能解决这个问题?我在网上看到了几乎所有关于regexp的页面javascript用户';输入验证,javascript,regex,validation,textbox,user-input,Javascript,Regex,Validation,Textbox,User Input,我正在创建一个需要验证用户输入的程序 用户应该能够写浮点数和一些字母,如千的“k”或百万的“m”。允许为:数字,列表中只有一个字母(g、k、m、n、u),十进制数字只有一个“.”。如果用户放置不同的符号,列表中的两个字母,两个点,紧跟着另一个符号-文本框中不显示任何内容 到目前为止,我所做的根本不起作用。我甚至不能用允许的符号创建一个列表。我怎样才能解决这个问题?我在网上看到了几乎所有关于regexp的页面 function signFilter(e) { var keynum;
function signFilter(e)
{
var keynum;
var keychar;
var numcheck;
if(window.event) // IE
{
keynum = e.keyCode;
}
else if(e.which) // Netscape/Firefox/Opera
{
keynum = e.which;
}
keychar = String.fromCharCode(keynum);
numcheck = /[0-9GMkmpu.]/;
return numcheck.test(keychar);
}
下面是输入的示例代码。我所做的一切都不会产生合理的结果。(当然,我从return中删除了“!” 您的正则表达式只是在
[
和]
中测试其中一个字符的存在。您要做的是测试字符串中是否存在任何其他字符
我建议您使用^
符号,例如:[^0-9GMkmpu.]
,这样您就可以检测到字符串中的任何错误字符
对于正则表达式,您编写了如下内容:aaaaaaaaaaahhhhhhhhh将返回yes。从您提供的代码来看,您似乎在一次测试一个字符的字符串。 您需要的代码只验证输入的字母是否正确,但总体而言,通过按键创建的最终字符串可能不是您期望的格式 例如,字符串
123.123.321.m
都是有效字符,但最后一个字符串无效
基本上,您需要添加检查最终输入字符串的验证
这样的regexp可以帮助您验证最终的字符串输入
numcheck = /^[0-9]*\.?[0-9]+[gkmnu]?$/
这个regexp说
但我需要在每次按键时验证它,不仅仅是在最后。我正在尝试更改这个正则表达式,并至少创建一个允许的字符列表(当然从return中删除“!”),但我总是得到不合理的结果。指数表示法带来的好处不多呢?i、 e.
1.0E-23
/^[0-9]*[\.]*[0-9]*[Mkmpu]*$/
window.onload=function() {
document.getElementById("t1").onkeypress=function(e) {
var keyNum = (window.event)?window.event.keyCode:e.which;
var keyChar = String.fromCharCode(keyNum);
return /[0-9GMkmpu\.]/.test(keyChar);
}
}