基礎函數
// 正小數,小數點後兩位,數值最前不能有0。
//'(\.[0-9]{1,2})?$)'修改其中的'2',可以改變小數點後位數的驗證
var reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;
var money = "520.100";
console.log(reg.test(money));//true
//000 錯
//0 對
//0. 錯
//0.0 對
//050 錯
//00050.12錯
//70.1 對
//70.11 對
//70.111錯
//500 正确
//round() 方法可把一個數字舍入為最接近的整數:
//parseFloat() 函數可解析一個字元串,并傳回一個浮點數。
function returnFloat(value) {
var value = Math.round(parseFloat(value) * ) / ;//舍入為小數點後兩位
var xsd = value.toString().split(".");//分割成數組
//小數點後沒有值,就添加'.00'
if (xsd.length == ) {
value = value.toString() + ".00";
return value;
}
//小數點後隻有1位,就添加'0'
if (xsd.length > ) {
if (xsd[].length < ) {
value = value.toString() + "0";
}
return value;
}
}
//驗證phoneNum,正确傳回true,錯誤傳回false
function checkMobile(phoneNum) {
var reg_phone = /^[1][0-9][0-9]{9}$/;
var regPhone = new RegExp(reg_phone);
if (regPhone.test(phoneNum)) {
return true;
} else {
return false;
}
}
/*發送驗證碼倒計時*/
var countdown = ;//倒計時為60秒
function settime(obj) {//obj為擷取驗證碼按鈕
if (countdown == ) {//如果倒計時為0,重置倒計時為60秒,恢複按鈕功能和文字
// obj.attr('disabled',false);
obj.removeAttr("disabled").removeClass('weui-btn_disabled').text("擷取驗證碼");
countdown = ;
return;
} else {//如果倒計時不為0,禁用按鈕,顯示倒計時,倒計時自減1
obj.attr('disabled', true).addClass('weui-btn_disabled').text("重新發送(" + countdown + ")");
countdown--;
}
// 每1000毫秒執行一次settime(obj)
setTimeout(function () {
settime(obj);
}, );
}
$(".js-btn-get-code").on('click', function () {
var $btn = $(this);
var tel_val=$("#mobile").val();
if(checkMobile(tel_val)===true){
settime($btn);
}
});
判斷輸入完成
- 每次輸入都進行判斷,(可用于驗證成功時,執行其他函數,比如給成功提示,或者改變狀态)
因為正則的關系且是每次輸入完成就驗證,導緻輸入到小數點’.’的時候就會報錯。(解決辦法是修改正則,可惜本人正則方面的知識很捉急)
//.bind('input propertychange',function(){//do something})//每次輸入完成後執行do something
$("#moneyCustom").bind('input propertychange', function () {
var moneyCustom = $(this).val();
var moneyCustom_end = returnFloat(moneyCustom);
console.log(moneyCustom);
if (moneyCustom) {
var reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;
if (!reg.test(moneyCustom)) {
$.alert({
title: '提示資訊',
text: '贊賞金額的輸入格式不正确,請确認!'
});
$(this).val("");
$("#moneyTotal").val("0.00");
changeNum();
return;
}
$("#moneyTotal").val(moneyCustom_end);
//金額的正規表達式驗證
} else {
$("#moneyTotal").val("0.00");
}
$(".js-reward-list").find("li.active").removeClass("active").end().find(".iconfont").remove();
changeNum();
});
假設使用者輸入完成後,一段時間沒操作,就判斷為輸入完成
var queue;
$("#moneyCustom").on('keyup', function (e) {
var $this=$(this);
clearTimeout(queue);
//鍵盤輸入離開後,1000毫秒後執行
queue = setTimeout(function () {
var moneyCustom = $this.val();
var moneyCustom_end = returnFloat(moneyCustom);
console.log(moneyCustom);
if (moneyCustom) {
var reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;
//金額的正規表達式驗證
if (!reg.test(moneyCustom)) {
$.alert({
title: '提示資訊',
text: '打賞金額隻能保留小數點後兩位哦~'
});
$this.val("");
$("#moneyTotal").val("0.00");
changeNum();
return;
}
$("#moneyTotal").val(moneyCustom_end);
} else {
$("#moneyTotal").val("0.00");
}
$(".js-reward-list").find("li.active").removeClass("active").end().find(".iconfont").remove();
changeNum();
}, );
});