在jquery中翻转多行文本的最快方法

时间:2015-04-23 09:45:14

标签: javascript 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;
}

什么是更好的方式?

4 个答案:

答案 0 :(得分:4)

你可以做;

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

首先,我们按换行分割文本并获取一行数组,然后反转每一行,然后用换行符('\ n')加入数组并获取一个字符串。

答案 1 :(得分:1)

这是最短的一个:

duplicity --rsync-options="--rsync-path=/usr/syno/bin/rsync" ~ rsync://remoteuser@nas.domain.com:/home/remoteuser/backup

答案 2 :(得分: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');

答案 3 :(得分:-2)

CSS:

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

jQuery的:

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