bug dans le module base.num: 'is*num -' était vrai

This commit is contained in:
Jephté Clain 2016-12-30 18:17:46 +04:00
parent 6366256c52
commit fd9105fa44
1 changed files with 5 additions and 7 deletions

View File

@ -6,24 +6,22 @@ uprovide base.num
function isnum() { function isnum() {
# retourner vrai si $1 est une valeur numérique entière (positive ou négative) # retourner vrai si $1 est une valeur numérique entière (positive ou négative)
[ ${#1} -gt 0 ] || return 1 [ ${#1} -gt 0 ] || return 1
local v="$1" local v="${1#-}"
v="${v#-}" [ ${#v} -gt 0 ] || return 1
v="${v//[0-9]/}" v="${v//[0-9]/}"
[ -z "$v" ] [ -z "$v" ]
} }
function ispnum() { function ispnum() {
# retourner vrai si $1 est une valeur numérique entière positive # retourner vrai si $1 est une valeur numérique entière positive
[ ${#1} -gt 0 ] || return 1 [ ${#1} -gt 0 ] || return 1
local v="$1" [ -z "${1//[0-9]/}" ]
v="${v//[0-9]/}"
[ -z "$v" ]
} }
function isrnum() { function isrnum() {
# retourner vrai si $1 est une valeur numérique réelle (positive ou négative) # retourner vrai si $1 est une valeur numérique réelle (positive ou négative)
# le séparateur décimal peut être . ou , # le séparateur décimal peut être . ou ,
[ ${#1} -gt 0 ] || return 1 [ ${#1} -gt 0 ] || return 1
local v="$1" local v="${1#-}"
v="${v#-}" [ ${#v} -gt 0 ] || return 1
v="${v//./}" v="${v//./}"
v="${v//,/}" v="${v//,/}"
v="${v//[0-9]/}" v="${v//[0-9]/}"