Así que tengo una cadena que se envía a una clase que se divide por \n para el formato. Me preguntaba si era posible subrayar palabras específicas de la cadena para que se vea mejor.
Actualmente esto es lo que se está pasando
"Name : Jackson \nLabel: Movie \nDirector: \nGenre: Action \nActors: Will, Jack, Carrie \nMetascore: 90/100 \nRevenue: 87.5M \nRuntime: 100 min \nRating: 9/10"Y me gustaría que la palabra después de \n hasta ":" esté subrayada, pero todo lo que he visto es subrayar una cadena completa.
Así es como estoy analizando actualmente la cadena.
const newText = text.split('\n').map(str => <p>{str}</p>); Mi suposición sería tener str dividido nuevamente por: dentro del .map y usando <Text style={styles.bold}> </Text> para configurarlo.
Puede dividir cada línea de su texto por : , como a continuación:
const string = ` Name: Jackson Label: Movie Director: Genre: Action Actors: Will, Jack, Carrie Metascore: 90/100 Revenue: 87.5M Runtime: 100 min Rating: 9/10 `; function MyList() { const strings = string.split('\n').map((str) => { const [label, value] = str.split(':'); return ( <div> <u>{label}</u>:<p>{value}</p> </div> ); }); return strings; } <u> significa subrayado en html.
También puede agregar un atributo className a la etiqueta que rodea la parte de la label y usar text-decoration: underline;
Prueba text.split(/[\n:]/) .
Después de eso, coloque cada elemento desigual en una etiqueta.
Por supuesto, funcionará solo si no hay otros dos puntos o líneas nuevas en el texto.
const str = "Name : Jackson\nLabel: Movie\nDirector: \nGenre: Action\nActors: Will, Jack, Carrie\nMetascore: 90/100\nRevenue: 87.5M\nRuntime: 100 min\nRating: 9/10" console.log(str.split(/\s?[\n:]\s?/).map((s, i) => i % 2 === 0 ? ('<u>' + s + '</u>:') : (' ' + s + '\n')).join(''))Divida la cadena dentro de la función map, envuélvala en etiquetas span y use text-decoration: underline; para CSS.