Каково регулярное выражение (используемый в actionscript) для нахождения первой новой строки (\n) в тексте?

Что регулярное выражение состоит в том, чтобы найти первой новой строкой (\n) в тексте (раньше находил и удалял новую строку)? Я использую регулярное выражение в ActionScript и судивший

ta.text = ta.text.replace(/\n*/,'') 

но это, кажется, не работает

Спасибо

1
задан Alan Moore 10 July 2010 в 10:31
поделиться

2 ответа

Только что протестировал это, и у меня это сработало:

ta.text = ta.text.replace("\n",'');


Мой реальный код был (вырезан и вставлен):
var testString:String = "Hello\nWorld";
trace(testString);
testString = testString.replace("\n", '');
trace(testString);

Что привело к выводу:

Hello
World
HelloWorld


В качестве альтернативы вы можете определить шаблон в соответствии с тем, что вы пытались сделать:
var pattern:RegExp = /AB\*C/;

И это тоже работает. Измененный код будет выглядеть следующим образом:

var pattern:RegExp = /\n/;
var testString:String = "Hello\nWorld";
trace(testString);
testString = testString.replace(pattern, '');
trace(testString);

Обратите внимание, что приведенный выше код заменяет только первый экземпляр символа новой строки (как вы просили). Чтобы сделать больше, потребуется либо рекурсивный вызов функции замены, либо более сложный RegExp.

Надеюсь, это каким-то образом поможет,

- gMale

РЕДАКТИРОВАТЬ: учитывая обсуждение комментария ниже, попробуйте вместо этого работать с одним из этих событий:

  • change Отправляется, когда текст в Элемент управления TextArea изменяется в результате ввода пользователем.
  • dataChange Отправляется при изменении свойства данных.
  • textInput Отправляется, когда пользователь вводит, удаляет или вставляет текст в элемент управления.
0
ответ дан 2 September 2019 в 23:11
поделиться

Вы используете регулярное выражение \n*, которое соответствует первому появлению нуля (!) или более символов перевода строки. Таким образом, первое совпадение этого регулярного выражения всегда находится в самом начале строки. Если строка начинается с символов перевода строки, то они будут совпадать. Если строка начинается с чего-то другого, будет сопоставлена строка нулевой длины в начале регекса.

Используйте \n для поиска первого символа перевода строки. Используйте \n+ для соответствия первой последовательности символов перевода строки. Используйте [\r\n]+ для соответствия первой последовательности символов перевода строки, независимо от используемого стиля перевода строки (только LF, CRLF и т.д.). Используйте \r?\n для сопоставления единственного перевода строки как LF only или CRLF.

В коде ActionScript используйте две косые черты, чтобы отделить регекс, который вы хотите использовать:

ta.text = ta.text.replace(/[\r\n]+/,'');
2
ответ дан 2 September 2019 в 23:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: