2015-04-23 1 views
1

Я ищу кратчайшую строку несвязанного кода, чтобы отменить многострочные строки в jquery. Например,Самый быстрый способ перевернуть многострочный текст в jQuery

ABCD

edfg

HIJK

должен стать

DCBA

gfde

kjih

Чрезвычайно сложный пример будет выглядеть так:

function fliptext() { 
    var text = document.getElementById('input_output').value; 
    text = text.replace(/\r/gi, ''); 
    text = text.replace(/([^a-z 0-9\n])/gi, ' $1 '); 
    text = text.split('\n').reverse().join('\n'); 
    text = text.split('').reverse().join(''); 
    text = text.replace(/ ([^a-z 0-9\n]) /gi, '$1'); 
    document.getElementById('input_output').value = text; 
} 

Что лучше?

ответ

-2

CSS:

.flipped { 
    transform: scale(-1, 1); 
} 

JQuery:

$("#some_div").addClass("flipped"); 
+0

Это было бы неплохо шутка/лазейку для PPCG. Это делает флип элемента, но он не переворачивает значение/innerHTML. Какой из них может быть прецедентом для этого кода. –

4

Вы могли бы сделать;

text = text.split('\n').map(function(el) {return el.split('').reverse().join('')}).join('\n'); 

Во-первых, мы разделили текст на переводы строк и получить массив строк, то реверс каждую строку, а затем присоединиться к массив с новой строки («\ п») и получить строку.

+0

Не должно быть 'el.split (''). Reverse()'? –

+0

Да, только что зафиксировал его. – keune

+0

@keune Это то же самое, что и запись 'text.split (''). Reverse(). Join ('')' – andlrc

0
var el = document.getElementById('input_output'); 
var value = el.value; 
// Split on newline and iterate over each line 
// this will preserve the the line numbers. 
var output = value.split('\n').map(function(line) { 
    // Split on each character this will create an array 
    // like this: "abc" -> ["a", "b", "c"] 
    // .reverse() will reverse the array -> ["c", "b", "a"] 
    // .join will make the array a string again. 
    return line.split('').reverse().join(''); 
}).join('\n'); 
1

Вот самый короткий:

var text = "abcdef\n123\n789"; 
text = text.split('').reverse().join('').split("\n").reverse().join("\n");