Actionscript 3 字符串验证操作脚本

Actionscript 3 字符串验证操作脚本,actionscript-3,flash,apache-flex,actionscript,Actionscript 3,Flash,Apache Flex,Actionscript,嘿,所有我正在使用的动作脚本,只是简单地尝试检查字符串是否包含特殊字符或数字,如果它没有添加到我的列表中,否则错误输出…但是NAN给我错误隐式强制字符串类型的值到一个不相关的类型数…有什么建议吗?下面是一些代码: private function onAddName(event:Event):void { var newItem:Object = {label:addName_ti.text}; //if not a number true then add on

嘿,所有我正在使用的动作脚本,只是简单地尝试检查字符串是否包含特殊字符或数字,如果它没有添加到我的列表中,否则错误输出…但是NAN给我错误隐式强制字符串类型的值到一个不相关的类型数…有什么建议吗?下面是一些代码:

private function onAddName(event:Event):void {
        var newItem:Object = {label:addName_ti.text};
        //if not a number true then add onto list.
        if ( isNaN(addName_ti.text )
        {
            names_li.dataProvider.addItem(newItem);
            names_li.dataProvider.sortOn("label");
            addName_ti.text = "";
            addName_bn.enabled = false;
            //User feedback for successfully entering item.
            trace ("Item succesfully added!");
        } else 
        { 
            //User feedback for not succesffully entering item.
            addName_bn.enabled = false;
            trace ("Improper formatting");
        }

    }

isNaN方法需要一个数字参数,因此您必须将字符串转换为数字:

if(isNaN(Number(addName_ti.text))
还可以使用正则表达式(regex)验证变量:

var isNumeric:RegExp= /^[0-9]*$/;
trace(isNumeric.test(addName_ti.text));

isNaN方法需要一个数字参数,因此您必须将字符串转换为数字:

if(isNaN(Number(addName_ti.text))
还可以使用正则表达式(regex)验证变量:

var isNumeric:RegExp= /^[0-9]*$/;
trace(isNumeric.test(addName_ti.text));

伊斯南期待一个数字。这就是为什么会出现错误。您应该首先使用parseFloat:

isNaN(parseFloat(addName_ti.text));
parseFloat特别适用于外部文本,因为它将忽略空白和尾随字符。如果解析不成功,它将返回NaN

“12”
将返回
12
。“12abc”将返回
12
。“abc12”将返回
NaN
<代码>“12 34 5 6”将返回
12


如果您的文本保证格式良好,那么简单地转换为数字
number(“12”)
会稍微快一些。在我的测试中,做1000万次大约快400毫秒。

isNaN期望一个数字。这就是为什么会出现错误。您应该首先使用parseFloat:

isNaN(parseFloat(addName_ti.text));
parseFloat特别适用于外部文本,因为它将忽略空白和尾随字符。如果解析不成功,它将返回NaN

“12”
将返回
12
。“12abc”将返回
12
。“abc12”将返回
NaN
<代码>“12 34 5 6”将返回
12


如果您的文本保证格式良好,那么简单地转换为数字
number(“12”)
会稍微快一些。在我的测试中,执行1000万次大约快400毫秒。

这也可以正常工作(只要文本是格式良好的数字)。这可能会稍微快一点,因为它不会检查空格和尾随字符。这也可以正常工作(只要文本是格式良好的数字)。这可能会稍微快一点,因为它不会检查空格和尾随字符。我不知道这是否是复制/粘贴错误,但您的isNaN条件缺失>>)我不知道这是否是复制/粘贴错误,但您的isNaN条件缺失>>)