Jquery 验证输入值是否为1000000.00或更大

Jquery 验证输入值是否为1000000.00或更大,jquery,string,validation,numbers,Jquery,String,Validation,Numbers,我正在使用一个priceFormat插件,它会自动在输入字段中放置逗号和小数,因此当用户输入1000000时,它会显示为1000000.00。我想做的是创建某种类型的验证,如果用户提供的值为1000000.00或更大,则会触发该验证 这就是我所拥有的: $('input#amount').priceFormat( {limit: 12} ).bind().blur( function() { if( $('#amount').val() >= 1000000){

我正在使用一个priceFormat插件,它会自动在输入字段中放置逗号和小数,因此当用户输入1000000时,它会显示为1000000.00。我想做的是创建某种类型的验证,如果用户提供的值为1000000.00或更大,则会触发该验证

这就是我所拥有的:

$('input#amount').priceFormat( {limit: 12} ).bind().blur( function() { if( $('#amount').val() >= 1000000){ // pop up notification }); $('input#amount').priceFormat({limit:12}).bind().blur(function()函数){ 如果($('#amount').val()>=1000000){ //弹出式通知 });
它将不会验证,因为我猜测输入值包含字符串而不是数字?

请尝试
parseInt
-

if( parseInt($('#amount').val().replace(/,/g,""),10) >= 1000000){   
正如Kato正确指出的,在将字符串传递给
parseInt
之前,还需要删除字符串中的任何逗号


试试
parseInt
-

if( parseInt($('#amount').val().replace(/,/g,""),10) >= 1000000){   
正如Kato正确指出的,在将字符串传递给
parseInt
之前,还需要删除字符串中的任何逗号


我会将
parseInt
parseFloat
环绕在值周围:

if (parseInt($("#amount").val()) >= 1000000){
    //validated
}

我会将
parseInt
parseFloat
环绕该值:

if (parseInt($("#amount").val()) >= 1000000){
    //validated
}

是的,这是因为
.val()
是一个字符串。您应该使用是的,这是因为
.val()
是一个字符串。您应该使用

您可能还希望使用隐藏字段来存储实际值并对其进行验证;这样,格式化的值就不会传递到服务器(它们也可能在其中放入其他实际上无效的字符)


您可能还希望使用隐藏字段来存储实际值并对其进行验证;这样您的格式化值就不会传递到服务器(它们也可能在其中放入其他实际上无效的字符).

您希望将
替换为零,然后对其进行解析,否则它将在逗号上拆分,并使用之前的值,因此从其他方面看,它将是
1
而不是
1000000

因此:


您希望将
替换为零,然后对其进行解析,否则它将在逗号上拆分,并使用前面的值,因此从其他方面看,它将是
1
而不是
1000000

因此:


除了将其解析为int之外,还需要通过删除逗号将其转换回正常数字

 if(parseInt($("#amount").val().replace(/[,$]/g, ""),10)) > 1000000){
 }

除了将其解析为int之外,还需要通过删除逗号将其转换回正常数字

 if(parseInt($("#amount").val().replace(/[,$]/g, ""),10)) > 1000000){
 }

Javascript比较将使用字符串和数字,例如,它们虽然容易混淆,但仍然有效

"10" > 1  ==> true
"10" > 11 ==> false
"10000" > 10 ==> true
"10 000" > 10 ==> false
但您的问题是格式化字符串中的点和逗号。请将它们解析掉,以便正确转换为数字

if(  $('#amount').val().match(/([0-9,]+)/)[0].replace(/, /g,'') > 1E6 ) {
  ...

这会将字符串(例如“10000.00”)转换为“10000”,并将其与1000 000进行比较。

Javascript比较将使用字符串和数字,例如,这些字符串和数字虽然容易混淆,但仍然有效

"10" > 1  ==> true
"10" > 11 ==> false
"10000" > 10 ==> true
"10 000" > 10 ==> false
但您的问题是格式化字符串中的点和逗号。请将它们解析掉,以便正确转换为数字

if(  $('#amount').val().match(/([0-9,]+)/)[0].replace(/, /g,'') > 1E6 ) {
  ...

这会将字符串(例如“10000.00”)转换为“10000”并将其与1000 000进行比较。

这将只解析到第一个逗号?@Kato正则表达式上的
g
修饰符应使其删除所有逗号。@Kato-感谢您指出这一点,我已更新了答案。这将只解析到第一个逗号?@Kato正则表达式上的
g
修饰符应使其删除所有逗号mmas@Kato-谢谢你指出这一点,我已经更新了答案。