Tengo un problema cuando codigo vue, con una cadena:
しらべよう、まとめよう ≪A≫[B]きものの ≪C≫[D]≪E≫[F]Necesito procesamiento para poder renderizar algo como esto:
el texto de arriba será el texto dentro de []. luego la parte inferior comenzará con la letra dentro ≪≫, y finalmente la letra restante.
...(if have) <ruby>B <rt>A</rt> </ruby> ... (if have) <ruby>D <rt>C</rt> </ruby> ... (if have)https://codepen.io/AkiraGosho/pen/NWaNNrZ?editors=1111
Esta es mi demostración, pero solo obtuve 1 letra, por lo que no sé cómo resolver el problema.
Muchísimas gracias.
Puede hacer esto usando .replace , aquí hay un ejemplo:
const input = 'しらべよう、まとめよう ≪A≫[B]きものの ≪C≫[D]≪E≫[F]' const output = input.replace(/([^≪]*)≪(.)≫[^\[]*\[(.)\]/g, '$1\n<ruby>$3\n\t<rt>$2</rt>\n</ruby>\n'); console.log(output); Lo que esto hace es usar una expresión regular que divide la entrada en grupos, el primer grupo ([^≪]*) selecciona cualquier carácter que no sea un ≪ seguido de ≪ , luego, el segundo grupo (.) selecciona un carácter precedido por ≪ y en barbecho por ≫ . El tercer grupo usa la misma lógica pero en lugar de usar ≪ y ≫ , usa [ y ] .