Реверс слова с помощью регулярки
На вход поступает слово переменной длины. Как средствами лишь регулярного выражения выдать перевёрнутое слово? Например, на входе -йылеб — нужно первернуть на -белый. Или акчот — точка. Ранее встречалось решение только с match в одном буржуйском блоге, но сейчас к нему доступа нет.
Ответы (5 шт):
Можно использовать калбэк в replace для аккумулирования символов в обратном порядке. Например, так:
let s = '1234', rs = ''
s.replace(/[а-яА-Я\w]/g, m => rs = m + rs)
console.log(rs) // '4321'
С тем же успехом развернуть можно и так...
let s = '1234'
s = [...s].reduce((s, v) => v + s)
console.log(s)
С тем же успехом развернуть можно и так...
let s = '1234';
s = [...s].reverse().join``;
console.log(s);
Ну давай тогда и я уж свой способ предложу :)
let str = '1234'
str = Object.values(str).reverse().join('')
console.log(str)
Объявление
Превращаем строку в массив, "переворачиваем" массив, и соединяем всё в одну строку.
Если приемлимы варианты без регулярок, то предложу самый быстрый способ сделать это:
function reverseString(str) {
let x = '';
for (let i = str.length - 1; i >= 0; --i) {
x += str[i];
}
return x;
}
console.log([
'abcde',
'qwerty',
'12345',
'абвгде'
].map(str => reverseString(str)));