Я хочу, чтобы эта строка {Rotation:[45f,90f],lvl:10s}
превратилась в {Rotation:[45,90],lvl:10}
.
Я пробовал это:
const bar = `{Rotation:[45f,90f],lvl:10s}`
const regex = /(\d)\w+/g
console.info(bar.replace(regex, '$&'.substring(0, -1)))
Я также пытался просто выбрать букву в конце, используя $
, но я не могу понять это правильно.
Следующее регулярное выражение будет соответствовать каждой группе из одной или нескольких цифр, за которыми следует f
или s
.
$1
представляет содержимое, захваченное группой захвата (\d)
.
const bar = `{Rotation:[45f,90f],lvl:10s}`
const regex = /(\d+)[fs]/g
console.info(bar.replace(regex, '$1'))
Это работает только для букв f и s, не так ли?
@Trojo Да, обновите свой вопрос, если у вас есть более подробные критерии. Очевидно, вы можете использовать [a-z]
, если хотите.
Проверь это :
const str = `{Rotation:[45f,90f],lvl:10s}`.split('');
const x = str.splice(str.length - 2, 1)
console.info(str.join(''));
Вы можете использовать положительное опережение, чтобы сопоставить закрывающую фигурную скобку, но не захватить ее. Затем один символ можно заменить пустой строкой.
const bar= '{Rotation:[45f,90f],lvl:10s}'
const regex = /.(?=})/g
console.info(bar.replace(regex, ''))
{Rotation:[45f,90f],lvl:10}
Ты можешь использовать
bar.replace(/(\d+)[a-z]\b/gi, '$1')
См. демонстрация регулярных выражений. Здесь,
(\d+)
- захватывает одну или несколько цифр в группу 1[a-z]
- соответствует любой букве\b
- на границе слова, т.е. в конце словаgi
- все вхождения, без учета регистраЗамена является значением группы 1, $1
.
См. демонстрацию JavaScript:
const bar = `{Rotation:[45f,90f],lvl:10s}`
const regex = /(\d+)[a-z]\b/gi
console.info(bar.replace(regex, '$1'))
Наверное будет
bar.replace(/(\d+)[a-z]\b/gi, '$1')