加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

将字符输入限制为特定字符

发布时间:2020-12-14 21:43:52 所属栏目:大数据 来源:网络整理
导读:我正在做一个完全工作的加减程序作为一个不错的小项目.我想知道的一件事是,是否有办法将输入限制为某些字符(例如二进制输入的1和0以及加或减输入的A和B).我总是可以用空字符串替换所有不是这些字符的字符来摆脱它们,但做这样的事情是相当繁琐的. 解决方法 以
我正在做一个完全工作的加减程序作为一个不错的小项目.我想知道的一件事是,是否有办法将输入限制为某些字符(例如二进制输入的1和0以及加或减输入的A和B).我总是可以用空字符串替换所有不是这些字符的字符来摆脱它们,但做这样的事情是相当繁琐的.

解决方法

以下是一些从用户输入中过滤掉指定字符的简单代码:

local filter = "10abAB"
local input = io.read()
input = input:gsub("[^" .. filter .. "]","")

过滤器变量只是设置为您希望在用户输入中允许的任何字符.例如,如果要允许c,请添加c:local filter =“10abcABC”.

虽然我假设您从io.read()获得输入,但您可能从其他地方获取它,因此您可以将io.read()替换为您需要的任何内容.

我的示例中的第三行代码实际上是过滤掉了文本.它使用string:gsub来执行此操作,这意味着它也可以这样写:

input = string.gsub(input,"[^" .. filter .. "]","").

像这样编写它的好处是很明显输入是一个字符串.

gsub模式是[^ 10abAB],这意味着任何不属于该模式的字符都将被过滤掉,因为它们之前的^和替换模式,这是空字符串,它是最后一个参数.方法调用.

你可能不应该使用的额外超短单线:

local input = io.read():gsub("[^10abAB]","")

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读