¿Alguien puede decir cómo reemplazarlo?
function textFormat(value){ value = value.replace(/\*{2}(.*?)\*{2}/g, <strong>{'$1'}</strong>); value = value.replace(/\*(.*?)\*/g, <i>{'$1'}</i>); value = value.replace(/~{2}(.*?)~{2}/g, <s>{'$1'}</s>); value = value.replace(/_{2}(.*?)_{2}/g, <u>{'$1'}</u>); return value; }Podría ayudar si puede mostrar cómo está obteniendo el valor inicial que se pasa a la función textFormat().
Pero, en general, parece que la función espera una cadena de texto, pero el valor que se pasa a la función es un objeto.
El mejor enfoque aquí sería probablemente ajustar el código fuera de la función, de modo que cuando se llama a la función textFormat(), el valor con el que se llama es una cadena de texto en lugar de un objeto.
O, una solución más versátil sería agregar un controlador de entrada en la parte superior de textFormat() para manejar diferentes tipos de entrada de manera diferente:
function textFormat(inVal){ // check input type let value; if (typeof inVal === 'object') { // input is an object, so we'll turn the // object into a JSON string value = JSON.stringify(inVal); } else { // input is not an object, so we'll assume // it's a string value = inVal; } value = value.replace(/\*{2}(.*?)\*{2}/g, <strong>{'$1'}</strong>); value = value.replace(/\*(.*?)\*/g, <i>{'$1'}</i>); value = value.replace(/~{2}(.*?)~{2}/g, <s>{'$1'}</s>); value = value.replace(/_{2}(.*?)_{2}/g, <u>{'$1'}</u>); return value; }Tenga en cuenta, sin embargo, que con la última solución si ingresa un objeto, el valor de retorno será una cadena JSON-ified de ese objeto (con los reemplazos de cadena dados realizados). Si desea recuperar un objeto modificado, tendrá que volver a convertir la cadena JSON en un objeto después de las líneas string.replace().
Puedes hacer eso con JSON.parse()