你好,我的场景中有一个TextField。它只有数字,用户通过单击按钮(NumPad)输入它们。我想用' - '分隔每个五个字符。用户必须输入20位数
我正在使用此代码
var rexp:RegExp = new RegExp("/^((\d{0,5})(\d{0,5})(\d{0,5})(\d{0,5}))$/");
trace(rexp.test(textEnter.text)); //always false
var s:String=textEnter.text.replace(rexp, "$2-$3-$4-$5");
trace(s);//format is fails
textEnter.text = s;
在this site上我的模式运行正常。但它们不能在我的AS3脚本中工作。
你可以帮助我说出我做错了什么。答案 0 :(得分:2)
在AS3中实例化正则表达式有两种方法。您可以使用构造函数表单或正则表达式文字表单。
使用此表示法,正则表达式文字创建一个隐式正则表达式对象,因此您不必这样做。以下工作正常:
var rexp:RegExp = /^((\d{0,5})(\d{0,5})(\d{0,5})(\d{0,5}))$/;
如果你真的想使用构造函数表单来实例化你的正则表达式,那么你用引号替换分隔正斜杠。您还必须为任何元序列添加第二个反斜杠。
var rexp:RegExp = new RegExp("^((\\d{0,5})(\\d{0,5})(\\d{0,5})(\\d{0,5}))$");
更多信息:http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7e92.html