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