Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中,仅接受双倍金额值的验证正则表达式不应接受word、-ve值等_Javascript_Validation - Fatal编程技术网

在javascript中,仅接受双倍金额值的验证正则表达式不应接受word、-ve值等

在javascript中,仅接受双倍金额值的验证正则表达式不应接受word、-ve值等,javascript,validation,Javascript,Validation,在javascript中,仅接受双倍数量值的正则表达式不应接受word,-ve值 $('document').ready(function() { $(".btn").click(function() { var amount = $('#amountId').val(); if (amount <= 0) { alert("Please insert a valid Amount! ");

在javascript中,仅接受双倍数量值的正则表达式不应接受word,-ve值

$('document').ready(function() {
        $(".btn").click(function() {
            var amount = $('#amountId').val();

            if (amount <= 0) {
                alert("Please insert a valid Amount! ");
                return false;
            }
        });
$('document').ready(函数(){
$(“.btn”)。单击(函数(){
var金额=$('#amountId').val();
如果(数量你试过吗

来自MDN:

以下示例都返回3.14


您可以分几个步骤来完成,查找无效字符,然后去除空白,然后检查有效整数,然后解析它并检查值

但是,如果您想在一个正则表达式中进行尝试,可以尝试以下内容:

var pattern = /^[0-9]*(.[0-9]*)?([eE][-+][0-9]*)?$/
如果要忽略空白,则需要首先处理空白(
trim
输入字符串)。如果不允许,还需要过滤掉0

下面的函数会执行一些操作,并返回一个具有解析数字的对象(使用
parseFloat
,如epoch所建议),并指示其是否有效。您应该能够将其放入代码中,并对其进行调整以实现所需的功能:

function processInput(s) {
    var pattern = /^[0-9]*(.[0-9]*)?([eE][-+][0-9]*)?$/
    var answer = { result: 0, isValid: false };

    // remove whitespace from start and end 
    s = s.trim();
    if (s.length > 0) { 
        answer.isValid = pattern.test(s);
        if (answer.isValid) { 
            answer.result = parseFloat(s);
        }
        // Might need a special test for 0 here
    }
    return answer;
}
我可能错过了一两个具体案例,但我测试了一系列可能的东西,输出:

'3' ->  { result: 3, isValid: true }
'.289213123' ->     { result: 0.289213123, isValid: true }
'0.2' ->    { result: 0.2, isValid: true }
'3.14' ->   { result: 3.14, isValid: true }
'3.14.14' ->    { result: 0, isValid: false }
'-3.14' ->  { result: 0, isValid: false }
'314e-2' ->     { result: 3.14, isValid: true }
'0.0314E+2' ->  { result: 3.14, isValid: true }
'3.14more non-digit characters' ->  { result: 0, isValid: false }
'3.' ->     { result: 3, isValid: true }
'' ->   { result: 0, isValid: false }

请注意,有效的负数返回false,因为您说过输入中不允许使用负数。因此,这不是一般的“isNumeric”,而是针对这种情况进行了更为定制的。如果需要,您也可以删除这些内容以匹配指数语法。

不,很抱歉,您没有理解我的意思,我只需要javascript中的正则表达式,它可以y双精度值作为输入,例如10.00、1234.00、123456.1234等。只允许双精度值不允许abcd,-1.00不允许,即使0.0也不允许。请发布有效和无效输入的示例。
'3' ->  { result: 3, isValid: true }
'.289213123' ->     { result: 0.289213123, isValid: true }
'0.2' ->    { result: 0.2, isValid: true }
'3.14' ->   { result: 3.14, isValid: true }
'3.14.14' ->    { result: 0, isValid: false }
'-3.14' ->  { result: 0, isValid: false }
'314e-2' ->     { result: 3.14, isValid: true }
'0.0314E+2' ->  { result: 3.14, isValid: true }
'3.14more non-digit characters' ->  { result: 0, isValid: false }
'3.' ->     { result: 3, isValid: true }
'' ->   { result: 0, isValid: false }