Задать вопрос
partyzanx
@partyzanx

Как заменить внутри строки с помощью regexp?

Есть строки
['{"russian": "женщина", "english": "woman, v","numberPinyin": "nv3","typeOfChar":"character","typeOfTranslating":"original"}',
'{"chinese": "弯竖左钩", "russian": "вогнутая с крюком влево", "english": "concave with left hook","numberPinyin": "eav","typeOfChar":"stroke","typeOfTranslating":"byStrokes"}',
'{"chinese": "弯竖右钩", "russian": "вогнутая с крюком вправо", "english": "concave with right hook","numberPinyin": "vm2","typeOfChar":"stroke","typeOfTranslating":"byStrokes"}']


С помощью регекспа найти в ней часть "numberPinyin": "" и заменить внутри вторых кавычек v на ü, вместо "numberPinyin": "nv3", например, должно получиться "numberPinyin": "nü3"
В других частях v не должна заменяться.
Нужно сделать без преобразования в объект, и без JSON

https://jsfiddle.net/0s946fvh/1/
  • Вопрос задан
  • 73 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 2
hzzzzl
@hzzzzl
надо тестить, но с этими данными работает

arr.map(string => 
  string.replace(
    /"numberPinyin": "(.*?)"/,
    (_, match) => `"numberPinyin": "${match.replace(/v/g, 'ü')}"`
  )
)
Ответ написан
Комментировать
@choupa
Архитектор (обычный, который строит)
Проверяем здесь:
https://regex101.com/r/7MzABW/1

Пишем JS:
yourString.replace( /(numberPinyin":\s*".*)(v)(.*)"/g, '$1ü$3' )
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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