如何在javaScript中对同一个数字设置两个限制,一个用于数字,另一个用于小数
所以我有这个问题。我希望一个数字限制为15个字符,同一个数字限制为3个字符,仅限小数。因此,我的最终数字可以是最多15位的数字,但如果我想在“.”之后再加上3位小数。所以我的数字不能超过15个字符,只要我有小数(3个最大值)。 希望我说得够清楚。如何在javaScript中对同一个数字设置两个限制,一个用于数字,另一个用于小数,javascript,jquery,Javascript,Jquery,所以我有这个问题。我希望一个数字限制为15个字符,同一个数字限制为3个字符,仅限小数。因此,我的最终数字可以是最多15位的数字,但如果我想在“.”之后再加上3位小数。所以我的数字不能超过15个字符,只要我有小数(3个最大值)。 希望我说得够清楚。 谢谢。您可以使用RegExp/^\d{15}(?:\.\d{3}}$)/匹配15位数字,或者15位数字后跟三位数字,后跟字符串结尾 var re=/^\d{15}(?:\.\d{3}}$)/; console.log(重新测试(“1234567891
谢谢。您可以使用
RegExp
/^\d{15}(?:\.\d{3}}$)/
匹配15位数字,或者15位数字后跟
三位数字,后跟字符串结尾
var re=/^\d{15}(?:\.\d{3}}$)/;
console.log(重新测试(“1234567891.23456”);//假的
console.log(重新测试(“123456789123456.123”);//真的
console.log(重新测试(“12345678912345”);//假的
console.log(重新测试(“123456789123456”);//true
您可以使用RegExp
/^\d{15}(?:\.\d{3}}$)/
匹配十五位数字,或者十五位数字后跟三位数字,后跟字符串末尾
var re=/^\d{15}(?:\.\d{3}}$)/;
console.log(重新测试(“1234567891.23456”);//假的
console.log(重新测试(“123456789123456.123”);//真的
console.log(重新测试(“12345678912345”);//假的
console.log(重新测试(“123456789123456”);//正确
这应该是正确的:
根据OP的要求,可以有15个字符或11+。+3=15个字符
:无效{
背景:红色;
}
这应该是正确的:
根据OP的要求,可以有15个字符或11+。+3=15个字符
:无效{
背景:红色;
}
这是您想要的工作方式:
$("input").keydown(function(event){
var value=$("input").val();
if($.inArray(event.keyCode, [48,49,50,51,52,53,54,55,56,57,46,8, 9, 27, 13, 110,190])>=0)
{
if(value.length>=15)
{
if((event.keyCode==190 || value.indexOf(".")>0) && value.length<19)
{
return true;
}
else
{
return false;
}
}}
else
{
return false;
}
});
$(“输入”).keydown(函数(事件){
var值=$(“输入”).val();
如果($.inArray(event.keyCode[48,49,50,51,52,53,54,55,56,57,46,8,9,27,13,110190])>=0)
{
如果(值.长度>=15)
{
如果((event.keyCode==190 | | value.indexOf(“.”>0))和&value.length这是您想要的:
$("input").keydown(function(event){
var value=$("input").val();
if($.inArray(event.keyCode, [48,49,50,51,52,53,54,55,56,57,46,8, 9, 27, 13, 110,190])>=0)
{
if(value.length>=15)
{
if((event.keyCode==190 || value.indexOf(".")>0) && value.length<19)
{
return true;
}
else
{
return false;
}
}}
else
{
return false;
}
});
$(“输入”).keydown(函数(事件){
var值=$(“输入”).val();
如果($.inArray(event.keyCode[48,49,50,51,52,53,54,55,56,57,46,8,9,27,13,110190])>=0)
{
如果(值.长度>=15)
{
如果((event.keyCode==190 | | value.indexOf(“.”>0)和&value.length,那么它可以是19chars?15+”“+3”,或者是15是硬最大值,那么15没有小数或13+”“+1dp或11+”“+3dp(等)?它可以是19chars,只有15+”+3,或者没有“.max 15。是
元素的字符串值吗?是的。是的。我有一个表单。所以它可以是19chars?15+”+3?或者15是硬最大值,所以15没有小数或13+“+1dp或11+”+3dp(等等)?它可以是19个字符,只有15+“+3,或者没有。”。最大值15。是
元素的字符串值吗?是的。我有一个表单。“它只能是19个字符”11+4==15&&11+4!==19
“它只能是19个字符”11+4===15&&11+4!==19
@AndreiChivu请参阅更新的帖子。将RegExp
减少了几个字符。我仍然有一些问题,您的验证对于少于15个字符的数字失败。我希望能够有123或123.123这样的值。@AndreiChivu您所说的“只能是19个字符15+”是什么意思。+3或不带“.”最多15"?使用建议的编辑来RegExp
是否解决了前面评论中描述的问题?@AndreiChivu请参阅更新的帖子。将RegExp
减少了几个字符。我仍然有一些问题,您的验证对于少于15个字符的数字失败。我希望能够有像123或123.123这样的值。@AndreiChivu做了什么你的意思是“它可以是19个字符,只有15+”“+3,或者没有。”“最多15”?使用建议的编辑来RegExp
解决之前评论中描述的问题吗?@AndreiChivu如果这对您有效,请将其标记为正确答案。它部分有效,并且仅适用于Chrome。使用您的代码,我可以输入小于15的数字和大于3位小数的数字。这是不正确的。正如我之前提到的,t代码类型与其他浏览器(如opera或Mozilla)有问题。我不能使用退格来表示完整的数字。@AndreiChivu如果这对您有效,请将其标记为正确答案。它部分有效,仅适用于Chrome。使用您的代码,我可以输入小于15的数字,大于3位小数。。这是不正确的。正如我提到的那样因此,这种类型的代码与其他浏览器(如opera或Mozilla)有问题。我不能使用backspace来表示完整的数字。