Инвертирование строки в JavaScript

Я пытаюсь инвертировать входную строку

var oneway = document.getElementById('input_field').value();
var backway = oneway.reverse();

но поджигатель говорит мне это oneway.reverse() не функция. Какие-либо идеи?

Спасибо

48
задан John 31 October 2019 в 19:01
поделиться

5 ответов

reverse () - это метод экземпляров массива. Он не будет работать напрямую со строкой. Сначала вы должны разделить символы строки на массив, перевернуть массив и затем снова объединиться в строку:

var backway = oneway.split("").reverse().join("");

Update

Вышеупомянутый метод безопасен только для "обычных" строк. См. Комментарий Матиаса Биненса ниже, а также его ответ для безопасного обратного метода.

112
ответ дан 7 November 2019 в 12:01
поделиться

reverse - это функция в массиве, и это строка. Вы можете разделить строку на массив, а затем перевернуть ее, а затем снова объединить вместе.

var str     = '0123456789';
var rev_str = str.split('').reverse().join('');
3
ответ дан 7 November 2019 в 12:01
поделиться

Думаю, вы обнаружите, что на самом деле reverse () не является функцией в jQuery. Между прочим, jQuery действительно хорош для манипулирования вашей DOM, но на самом деле не для манипуляции строками как таковых (хотя вы, вероятно, можете получить плагины / написать свои собственные), чтобы сделать это.

Лучший способ, который я нашел, чтобы отменить строка в javascript предназначена для выполнения следующих действий:

String.prototype.reverse = function(){
splitext = this.split("");
revertext = splitext.reverse();
reversed = revertext.join("");
return reversed;
}

Найдено по адресу: http://www.bytemycode.com/snippets/snippet/400/

Я думаю, вы обнаружите, что если вставите указанное выше в где-нибудь ваш код, ваш вызов .reverse () должен работать :)

0
ответ дан 7 November 2019 в 12:01
поделиться
// You could reverse a string without creating an array

String.prototype.reverse= function(){
 var s= '', L= this.length;
 while(L){
  s+= this[--L];
 }
 return s;
}

var s1= 'the time has come, the walrus said, to speak of many things';
s1.reverse()
/*returned value: (String)
sgniht ynam fo kaeps ot, dias surlaw eht, emoc sah emit eht
*/
4
ответ дан 7 November 2019 в 12:01
поделиться
String.prototype.reverse = function () {
    return this.split("").reverse().join("");
}

Вдохновленный первым результатом , который я получил, когда я сделал Google для перевернутой строки javascript .

8
ответ дан 7 November 2019 в 12:01
поделиться
Другие вопросы по тегам:

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