#javascript
#javascript
Вопрос:
Рассмотрим следующую строку как выделение в текстовой области:
«Я хочу вставить n табуляцию после каждой новой строки в этом выборе. n Я также хочу знать, как сделать наоборот, удаляя вкладку перед каждой новой строкой в этом выборе. «
И упрощенный пример задействованного кода:
var userWantsToIndentSelection = true,
userWantsToOutdentSelection = false,
start = this.selectionStart,
end = this.selectionEnd,
selection = text.slice(start,end),
newline = /r|n/.exec(selection);
if(newline){
if (userWantsToIndentSelection){
// add tabs after each newline
}
else if (userWantsToOutdentSelection) {
// remove tabs before each newline
}
}
if(!newline){
// Handling just one line (cursor at front of line, no selection) is simple.
// Perhaps I don't need a special handler though
// and can use the new line handler for single and multiple line selections.
// Mention it in your answer if you like.
}
Как я могу вставить или удалить вкладку до / после каждой новой строки в строке с помощью Javascript?
Комментарии:
1. Я не слишком много возился с регулярными выражениями, и хотя это может быть решением, я надеялся, что смогу использовать функции slice() map() или filter (), о которых я читал.
2. выделение = » t» selection.split(«n»).join(» n t») добавит строку. измените кавычки в разделении / соединении, чтобы отменить.
3. @dandavis публикует это в качестве ответа, это очень просто, и это сработало отлично.
Ответ №1:
вы можете использовать это регулярное выражение src.replace(/^/gm, "t");
^
соответствует началу строки
m
Сообщает движку регулярных выражений использовать многострочный режим, чтобы ^
соответствовать каждой строке, а не только началу строки.