我想检查javascript和php的值,哪一个应该像这样的格式22.22或00.44或44或55.00。

我有下面的代码。

$(function(){

    // $('.pixcel_rate').keypress(function (event) {
    //         return isNumber(event, this)
    // });
   $('.pixcel_rate').keypress(function (event) {
            return validateFloatKeyPress($(this).val());
    });
  });


// THE SCRIPT THAT CHECKS IF THE KEY PRESSED IS A NUMERIC OR DECIMAL VALUE.


function validateFloatKeyPress(evt,el) {
    var charCode = (evt.which) ? evt.which : event.keyCode;
    var number = el.value.split('.');

    if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) {
        return false;
    }
    //just one dot (thanks ddlab)
    if(number.length>1 && charCode == 46){
         return false;
    }
    //get the carat position
    var caratPos = getSelectionStart(el);
    var dotPos = el.value.indexOf(".");

    console.log(caratPos);
    console.log(dotPos);
    if( caratPos >1  && dotPos>-1 && (number[0].length > 1)){
        return false;
    }
    if( caratPos > dotPos && dotPos>-1 && (number[1].length > 1)){
        return false;
    }
    return true;
}

function getSelectionStart(o) {
    if (o.createTextRange) {
        var r = document.selection.createRange().duplicate()
        r.moveEnd('character', o.value.length)
        if (r.text == '') return o.value.length
        return o.value.lastIndexOf(r.text)
    } else return o.selectionStart
}

最佳答案

您可以在php中使用preg_match来查看它是否与模式匹配。

preg_match("/^\d{2}\.\d{2}$|^\d{2}$/", $val);


这匹配两位数,点,两位数。或只有两位数。

测试用例示例:
https://3v4l.org/G6D8l

关于javascript - 如何以文本框数字格式(如44.44)执行验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56250815/

10-12 15:28