次のようにコードをコピーします。
関数 validateNum(obj) {
//正の整数 (ここではキャッシュが使用されます)
var 番号 = obj.data(validate).number;
//小数点(ここではキャッシュを使用します)
var 10 進数 = obj.data(validate).10 進数;
//動的基本検証規則性
eval("var reg = /^[0-9]{0," + 数値 + "}([.]?[0-9]{0," + 10 進数 + "})$" + "/g;" );
var 値 = obj.val();
var maxnumlen = 数値 + 小数点 + 1; //最大長 + 1 (小数点)
if (!reg.test(obj.val())) は false を返します。
//最大長は現在の値の長さと等しく、値には「.」は含まれません。
if (maxnumlen == value.length && value.indexOf('.') <= 0) {
false を返します。
}
//「.」のインデックスを取得してみます。
var valueindexof = value.indexOf('.');
if (値インデックス > 0) {
//「.」インデックスの後のビットが空の場合は、必ず false を返します。
if (value.charAt(valueindexof + 1) == "") {
false を返します。
}
}
//前後の内容を簡単に判断できるように値を分割します
var valueplit = value.split('.');
//値の長さが定義された正の整数の長さより大きい場合
if (値.長さ > 数値) {
if (valuesplit.length == 1) {
false を返します。
}
//最大長 - 定義された長さが最大長より長い場合は false。
if (maxnumlen - 数値 >= maxnumlen) {
false を返します。
}
}
true を返します。
}
要素の検証オブジェクトをキャッシュした後は、それを呼び出すだけです。
意味:
$("#example").data("検証", { 数値: 2, 10 進数: 2 });
電話:
validateNum($("#example));