使用RegExp将每个五个字符分隔为“ - ”或其他内容

时间:2012-01-28 15:05:58

标签: regex actionscript-3

你好,我的场景中有一个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脚本中工作。

你可以帮助我说出我做错了什么。

1 个答案:

答案 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