Javascript 在jquery中翻转多行文本的最快方法
我正在寻找最短的一行未模糊代码来反转jquery中的多行字符串。比如说, abcd edfg hijk 应该成为 dcba gfde 克吉 一个极其复杂的示例如下所示:Javascript 在jquery中翻转多行文本的最快方法,javascript,jquery,Javascript,Jquery,我正在寻找最短的一行未模糊代码来反转jquery中的多行字符串。比如说, abcd edfg hijk 应该成为 dcba gfde 克吉 一个极其复杂的示例如下所示: function fliptext() { var text = document.getElementById('input_output').value; text = text.replace(/\r/gi, ''); text = text.replace(/([^a-z 0-9\n])/gi,
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;
}
有什么更好的方法?CSS:
.flipped {
transform: scale(-1, 1);
}
jQuery:
$("#some_div").addClass("flipped");
你可以做
text = text.split('\n').map(function(el) {return el.split('').reverse().join('')}).join('\n');
首先,我们用换行符拆分文本并得到一个行数组,然后反转每一行,然后用换行符('\n')连接数组并得到一个字符串。以下是最短的一个:
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');
var text = "abcdef\n123\n789";
text = text.split('').reverse().join('').split("\n").reverse().join("\n");
它不应该是
el.split(“”).reverse()
?@keune这与编写text.split(“”).reverse().join(“”)是有意义的,因为它是一个字符串,所以不需要遍历每一行。@keune并且不支持text=“abc\ndef”
,因为你可以在OP想要的地方找到“fed\ncba”
“cba\nfed”
这对于PPCG来说是一个很好的笑话/漏洞。它确实翻转了一个元素,但没有翻转值/innerHTML。这两个可能是该代码的一个用例。