libs/web: implement minlength(), maxlength() and rangelength() datatypes
This commit is contained in:
parent
66eec98a57
commit
6780f757d6
2 changed files with 62 additions and 1 deletions
|
@ -216,6 +216,33 @@ var cbi_validators = {
|
|||
return false;
|
||||
},
|
||||
|
||||
'rangelength': function(min, max)
|
||||
{
|
||||
var val = '' + this;
|
||||
if (!isNaN(min) && !isNaN(max))
|
||||
return ((val.length >= min) && (val.length <= max));
|
||||
|
||||
return false;
|
||||
},
|
||||
|
||||
'minlength': function(min)
|
||||
{
|
||||
var val = '' + this;
|
||||
if (!isNaN(min))
|
||||
return (val.length >= min);
|
||||
|
||||
return false;
|
||||
},
|
||||
|
||||
'maxlength': function(max)
|
||||
{
|
||||
var val = '' + this;
|
||||
if (!isNaN(max))
|
||||
return (val.length <= max);
|
||||
|
||||
return false;
|
||||
},
|
||||
|
||||
'or': function()
|
||||
{
|
||||
for (var i = 0; i < arguments.length; i += 2)
|
||||
|
|
|
@ -17,7 +17,7 @@ local fs = require "nixio.fs"
|
|||
local ip = require "luci.ip"
|
||||
local math = require "math"
|
||||
local util = require "luci.util"
|
||||
local tonumber, type, unpack, select = tonumber, type, unpack, select
|
||||
local tonumber, tostring, type, unpack, select = tonumber, tostring, type, unpack, select
|
||||
|
||||
|
||||
module "luci.cbi.datatypes"
|
||||
|
@ -306,6 +306,40 @@ function max(val, max)
|
|||
return false
|
||||
end
|
||||
|
||||
function rangelength(val, min, max)
|
||||
val = tostring(val)
|
||||
min = tonumber(min)
|
||||
max = tonumber(max)
|
||||
|
||||
if val ~= nil and min ~= nil and max ~= nil then
|
||||
return ((#val >= min) and (#val <= max))
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
function minlength(val, min)
|
||||
val = tostring(val)
|
||||
min = tonumber(min)
|
||||
|
||||
if val ~= nil and min ~= nil then
|
||||
return (#val >= min)
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
function maxlength(val, max)
|
||||
val = tostring(val)
|
||||
max = tonumber(max)
|
||||
|
||||
if val ~= nil and max ~= nil then
|
||||
return (#val <= max)
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
function phonedigit(val)
|
||||
return (val:match("^[0-9\*#]+$") ~= nil)
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue