Использование RegExp для разделения каждого пятисимвольного символа '-' или чего-то еще - PullRequest
1 голос
/ 28 января 2012

Здравствуйте, у меня есть 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;

На этом сайте мои шаблоны работают нормально. Но они не работают в моем скрипте AS3.

Вы можете помочь мне и сказать, что я делаю неправильно.

1 Ответ

2 голосов
/ 28 января 2012

Существует два способа создания регулярного выражения в 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...