diff options
-rw-r--r-- | libs/web/htdocs/luci-static/resources/cbi.js | 7 | ||||
-rw-r--r-- | libs/web/luasrc/cbi/datatypes.lua | 7 |
2 files changed, 8 insertions, 6 deletions
diff --git a/libs/web/htdocs/luci-static/resources/cbi.js b/libs/web/htdocs/luci-static/resources/cbi.js index 8d32b669d1..e932dac1d0 100644 --- a/libs/web/htdocs/luci-static/resources/cbi.js +++ b/libs/web/htdocs/luci-static/resources/cbi.js @@ -153,8 +153,9 @@ var cbi_validators = { 'hostname': function(v) { if (v.length <= 253) - return (v.match(/^[a-zA-Z0-9]+$/) != null || - v.match(/^[a-zA-Z0-9][a-zA-Z0-9\-.]*[a-zA-Z0-9]$/) != null); + return (v.match(/^[a-zA-Z]+$/) != null || + (v.match(/^[a-zA-Z0-9][a-zA-Z0-9\-.]*[a-zA-Z0-9]$/) && + v.match(/[^0-9.]/))); return false; }, @@ -191,7 +192,7 @@ var cbi_validators = { 'neg_network_ip4addr': function(v) { v = v.replace(/^\s*!/, ""); - return cbi_validators.uciname(v) || cbi_validators.ip4addr(v); + return cbi_validators.uciname(v) || cbi_validators.ip4addr(v); }, 'range': function(v, args) diff --git a/libs/web/luasrc/cbi/datatypes.lua b/libs/web/luasrc/cbi/datatypes.lua index 9a3b735008..65a8eedeb1 100644 --- a/libs/web/luasrc/cbi/datatypes.lua +++ b/libs/web/luasrc/cbi/datatypes.lua @@ -142,8 +142,9 @@ end function hostname(val) if val and (#val < 254) and ( - val:match("^[a-zA-Z0-9]+$") or - val:match("^[a-zA-Z0-9][a-zA-Z0-9%-%.]*[a-zA-Z0-9]$") + val:match("^[a-zA-Z]+$") or + (val:match("^[a-zA-Z0-9][a-zA-Z0-9%-%.]*[a-zA-Z0-9]$") and + val:match("[^0-9%.]")) ) then return true end @@ -238,7 +239,7 @@ function neg_network_ip4addr(val) if type(v) == "string" then v = v:gsub("^%s*!", "") return (uciname(v) or ip4addr(v)) - end + end end function range(val, min, max) |