【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"))
 2 print('2 : ', tonumber("AF", 16))
 3 print('3 : ', tonumber("0xA"))
 4 print('4 : ', tonumber("23.45"))
 5 print('5 : ', tonumber("0102"))
 6 print('6 : ', tonumber("1234abcd"))
 7 print('7 : ', tonumber("white"))
 8 print('8 : ', tonumber("false"))
 9 print('9 : ', tonumber("0000"))
10 print('10 : ', tonumber({x = 10, y = 20}))
11 print('11 : ', tonumber("100", 2))
12 print('12 : ', tonumber("4", 2))
13 print('13 : ', tonumber("100", 3))
14 print('14 : ', tonumber("100", 10))
15 print('15 : ', tonumber("100", 20))
16 print('16 : ', tonumber("16", 20))
17 print('17 : ', tonumber("17", 25))
18 print('18 : ', tonumber("18", 30))
19 print('19 : ', tonumber("AA", 30))
20 print('20 : ', tonumber("aa", 30))
21 print('21 : ', tonumber("B2", 35))
22 print('22 : ', tonumber("C2", 36))
23 -- print('23 : ', tonumber("D2", 37)) --bad argument #2 to 'tonumber' (base out of range)
24
25 -- 运行结果:
26 --[[
27 1 :     10
28 2 :     175
29 3 :     10
30 4 :     23.45
31 5 :     102
32 6 :     nil
33 7 :     nil
34 8 :     nil
35 9 :     0
36 10 :     nil
37 11 :     4
38 12 :     nil
39 13 :     9
40 14 :     100
41 15 :     400
42 16 :     26
43 17 :     32
44 18 :     38
45 19 :     310
46 20 :     310
47 21 :     387
48 22 :     434
49 --]]

【3】总结

tonumber函数会尝试将它的参数转换为数字。

如果参数已经是一个数字或者是一个可以转换成数字的字符串,那么这个函数就会返回转换后的数值,否则,返回nil(表示转换失败)。

这个函数有一个额外的参数base可用来指定参数的进制:

(1)默认参数值是10

(2)参数的取值范围是[2, 36]

(3)当参数值超过10时,使用A代表10(大小写都可以),B代表11,以此类推最后Z代表35

Good Good Study, Day Day Up.

顺序 选择 循环 总结

转载于:https://www.cnblogs.com/Braveliu/p/10686625.html

lua tonumber相关推荐

  1. Redis实现分布式限流(学习笔记

    Redis实现分布式限流(学习笔记2022.07.09) 前言: 以下实现都是基于: spring-boot-starter-web + spring-boot-starter-data-redis ...

  2. lua之诡异的tonumber

    昨晚翻看lua源码的时候,发现在luaO_str2num有特殊处理,确切来说是在l_str2int(字符串转换成整形),lstr2d(字符串转换成double类型) size_t luaO_str2n ...

  3. Lua中的基本函数库

    基本函数库为Lua内置的函数库,不需要额外装载 assert (v [, message]) 功能:相当于C的断言, 参数: v:当表达式v为nil或false将触发错误, message:发生错误时 ...

  4. Java并发:分布式应用限流 Redis + Lua 实践

    任何限流都不是漫无目的的,也不是一个开关就可以解决的问题,常用的限流算法有:令牌桶,漏桶.在之前的文章中,也讲到过,但是那是基于单机场景来写. 之前文章:接口限流算法:漏桶算法&令牌桶算法 然 ...

  5. 一些LUA函数(转载)

    转自http://hi.baidu.com/chevallet/item/9a3a6410c20d929198ce3363 一些LUA函数 1.assert (v [, message]) 功能:相当 ...

  6. lua搭建ui_构建类魔兽UI插件的lua安全沙箱

    魔兽的UI插件结构 1.使用lua+XML作为配置 分析:XML虽然人机交互很好,但其实没有几个UI是真正用纯XML写的,大多还是用编辑器比较方便.速度很慢,但尚不清楚魔兽代码里是否进行优化 2. I ...

  7. nginx lua redis 访问频率限制(转)

    1. 需求分析 Nginx来处理访问控制的方法有多种,实现的效果也有多种,访问IP段,访问内容限制,访问频率限制等. 用Nginx+Lua+Redis来做访问限制主要是考虑到高并发环境下快速访问控制的 ...

  8. cocos2dx - Lua 语言

    快捷注释: - -[[ print(10) - ->10  - - 不起作用(因为这是注释) - -]] 当重新启用这段代码时,只需在一次行行首添加一个连接字符即可: - - -[[ print ...

  9. Nginx(OpenResty)+Lua+Redis IP限流 10s内

    使用 OpenResty 可以不用再次编译nginx 就能集成对应lua环境 可以扩展的模块比较丰富 1.使用redis 控制限流 ip 访问频度 创建对应lua脚本 access_by_limit_ ...

  10. Lua中使用Sleep函数

    Lua中没有内置的Sleep函数,有4种方法可以实现Sleep函数功能,如下: 方法1 在一个死循环中设置一个跳出条件,但是这样的做法会占用大量CPU资源,强烈不推荐使用. function Slee ...

最新文章

  1. jni releative
  2. 斐波那契数列 || 猴子吃桃问题 用递归实现
  3. 常见索引结构—FST
  4. leetcode144. 二叉树的前序遍历(迭代)
  5. 肖仰华 | 基于知识图谱的可解释人工智能:机遇与挑战
  6. PTA19、通过两个列表构建字典 (10 分)
  7. www.cnblog.org无法访问了
  8. DHCP之二 DHCP的中继代理
  9. 创建ubuntu根文件系统
  10. 解决linux下cocos2dx不能播放声音
  11. NODA-GA-NHS ester CAS:1407166-70-4 大环配体配合物
  12. c语言括号表示法画树怎么画,各种树的画法,这篇文章写得太详细了,值得收藏!...
  13. Python爬虫实战(一) QQ音乐评论爬取及可视化分析
  14. NKOI 2008 涂色
  15. 15.内置函数,匿名函数
  16. 基于opencv实现透视变换(Python)
  17. matlab中求立方根,matlab实现求复数立方根的函数代码怎么写
  18. vscode代码拼写检查插件的使用(超详细)
  19. LC滤波器设计学习笔记(一)滤波电路入门
  20. vscode中git push代码时报错PresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364

热门文章

  1. Magicodes.IE 2.7.0发布
  2. 教你制作Linux系统的安装盘
  3. webgl框架介绍以及webgl项目的技术选型问题
  4. python爬虫设计图片_手把手教你用Python网络爬虫获取壁纸图片
  5. android系统中wifi省电模式下的四个基本概念:TIM、DTIM、Beacon-Interval、Listen-Interval
  6. 基于javaweb+jsp的学生档案管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap)
  7. 2018.12.26 Jquery 使用 slideBox 实现滚动 效果
  8. 网络钓鱼(Phishing)攻击方式
  9. 知识图谱应用在金融行业的地方
  10. Django 一文看懂urls.py与views.py的联系