Как проверить и удалить символ новой строки (\ n) в первой строке текстового поля в actionscript? - PullRequest
1 голос
/ 17 июня 2010

В сценарии иногда новая строка добавляется в начало текстового поля (я использую textArea в Adobe Flex 3), и позже, возможно, потребуется удалить новую строку (после добавления другого текста). Мне было интересно, как проверить, есть ли новая строка в начале текстового поля, а затем, как удалить его. Заранее спасибо.

Ответы [ 4 ]

4 голосов
/ 17 июня 2010

Как насчет

private function lTrimTextArea(ta:TextArea) {
  ta.text = ta.text.replace(/^\n*/,'');
}
1 голос
/ 11 июля 2010

Чтобы удалить все разрывы строк в начале строки, независимо от того, являются ли они разрывами строк в Windows (CRLF) или UNIX (только LF), используйте:

ta.text = ta.text.replace(/^[\r\n]+/,'');

Вы должны использовать +в регулярном выражении вместо *, так что регулярное выражение выполняет замену только в том случае, если в начале строки есть разрыв строки.Если вы используете ^\n*, как предложил Робусто, регулярное выражение найдет совпадение нулевой длины в начале строки, если строка не начинается с перевода строки, и замените его ничем.Замена ничем ничего не является пустой тратой циклов процессора.В этой ситуации это может не иметь значения, но избегать непреднамеренных совпадений нулевой длины - очень хорошая привычка при работе с регулярными выражениями.В других ситуациях вас укусят.

0 голосов
/ 04 сентября 2017

Если вы хотите просто отключить возможность создания возврата каретки / новой строки, то все что вам нужно сделать, это отключить multiline для этого TextField ...

(exampleTextField as TextField).multiline = false;

Это по-прежнему будет вызывать события KEY_DOWN и KEY_UP, однако не будет добавлять текст к возврату каретки.

0 голосов
/ 13 октября 2015

Если вы особенно хотите проверить первый символ, вот решение:

if(ta.text.charAt(0) == "\n" || ta.text.charAt(0) == "\r")
{
     ta.text.slice(1,ta.text.length-1);
}

Метод среза срежет этот первый символ и даст ваш текст от второго символа.

...