【1】应用tonumber函数
1 local function test(telnum) 2 local isLen = string.len(telnum) > 0 and string.len(telnum) < 7 and string.len(telnum) ~= 4 3 local value = tonumber(string.sub(telnum, 1, 4)) 4 local isReserve = (4 == string.len(telnum)) and value and (value < 5000 or value > 5999) -- 5000~5999公司预留号码 5 if string.sub(telnum, 1, 3) == '800' or isLen or isReserve then -- 业务分机号规定位数范围[1, 6] 6 return '800' 7 else 8 return '' 9 end 10 end 11 12 print('1 : ' .. test('4500')) 13 print('2 : ' .. test('456789')) 14 print('3 : ' .. test('5001')) 15 print('4 : ' .. test('123')) 16 print('5 : ' .. test('')) 17 print('6 : ' .. test('1234567')) 18 print('7 : ' .. test('8001234567')) 19 20 -- 运行结果 21 1 : 800 22 2 : 800 23 3 : 24 4 : 800 25 5 : 26 6 : 27 7 : 800
【2】tonumber函数
示例代码:
1 print('1 : ' .. (tonumber("10") or 'nil')) -- 返回十进制数10 2 print('2 : ' .. (tonumber("AF", 16) or 'nil')) -- 返回十六进制数175 3 print('3 : ' .. (tonumber("0xA") or 'nil')) -- 返回十进制数10 4 print('4 : ' .. (tonumber("23.45") or 'nil')) -- 返回23.45 5 print('5 : ' .. (tonumber("0102") or 'nil')) -- 返回102 6 print('6 : ' .. (tonumber("1234abcd") or 'nil')) -- 返回nil 7 print('7 : ' .. (tonumber("white") or 'nil')) -- 返回nil 8 print('8 : ' .. (tonumber("false") or 'nil')) -- 返回nil 9 print('9 : ' .. (tonumber("0000") or 'nil')) -- 返回0 10 print('10 : ' .. (tonumber({x = 10, y = 20}) or 'nil')) -- 返回nil 11 12 -- 运行结果 13 1 : 10 14 2 : 175 15 3 : 10 16 4 : 23.45 17 5 : 102 18 6 : nil 19 7 : nil 20 8 : nil 21 9 : 0 22 10 : nil
【3】总结
tonumber函数,如果参数可以转换为数值,那么,返回值是转换后的数值;否则,返回值为nil
Good Good Study, Day Day Up.
顺序 选择 循环 总结