首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >排除在TextField中键入精确的两个数字

排除在TextField中键入精确的两个数字
EN

Stack Overflow用户
提问于 2018-03-26 21:12:08
回答 1查看 59关注 0票数 0

我不想在TextField中键入两个数字"3和4“,我尝试过:

代码语言:javascript
复制
var theTextField:TextField = new TextField();
theTextField.type = TextFieldType.INPUT;
theTextField.border = true;
theTextField.x = 10;
theTextField.y = 10;
addChild(theTextField);

theTextField.restrict="0-9^3-4";

这成功地将3和4排除在文本字段中,但也阻止了您键入33或45例如,我只想排除3和4。任何包含3或4的两位或三位数字都应该被允许,你知道我该怎么做吗?

EN

回答 1

Stack Overflow用户

发布于 2018-04-01 12:55:24

那么只限制组合34和43吗?

就像Organis评论的那样,你应该通过Event.CHANGE验证输入,如果你还没有让用户知道这个限制,那么就显示某种警告。

在验证函数内部,您可以检查输入文本是"34“还是"43”,然后删除其中的第二个字符以模拟实际的限制:

代码语言:javascript
复制
theTextField.addEventListener(Event.CHANGE, validateInput);

function validateInput(e:Event):void{
    if(e.target.text == "34" || e.target.text == "43"){
        e.target.text = e.target.text.split("")[0];
    }
}

您还可以使用RegExp来检查匹配,并在函数中使用.slice而不是.split

代码语言:javascript
复制
var pattern:RegExp = /^[34|43]{2}$/;
if(pattern.test(e.target.text)){
    e.target.text = e.target.text.slice(0,-1);
}

如果你最终会得到更复杂的限制模式,你可以通过检查n的th字符来使用.split构建更复杂的检查,等等:

代码语言:javascript
复制
if(e.target.text.length == 2){
    if((e.target.text.split("")[0] == "3" && e.target.text.split("")[1] == "4") ||
        (e.target.text.split("")[0] == "4" && e.target.text.split("")[1] == "3")){
            e.target.text = e.target.text.slice(0,-1);
        }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49492335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档