我有一个文本输入字段,用户只能输入 double 值。 我已经成功地使用 jquery 来实现这一点,但对正则表达式没有太多经验,我不确定我正在使用的正则表达式(使用多个 OR)是否是一个好方法。我花了很多时间尝试获得一个简单的正则表达式,但没有成功。这是我最后用的。
这是我正在使用的功能:
$('#foo').keyup(function(){
var str = $(this).val();
if(/(^\.+$)|(^\d+$)|(^\d+\.$)|(^\.\d+$)|(^\d+\.\d+$)/.test(str)){
$('#foosays').text(str);
}else{
$("#foo")[0].value="";
}
});
这是我的函数的演示:http://jsfiddle.net/Esfsy/
欢迎提出任何改进正则表达式或其他任何内容的建议。
最佳答案
你可以像这样简化它:
$('#foo').keyup(function(){
var str = $(this).val();
if(/^-?(\d*\.)?\d*$/.test(str)){
$('#foosays').text(str);
}else{
$("#foo")[0].value="";
}
});
关于javascript - 动态双重验证Javascript正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16429310/