Necesito reemplazar todo "*text*" en "<strong>text</strong>"
al pasar texto = "normal text *words to be bolded* continue normal text" no funciona debido a los espacios, solo funciona para texto de una sola palabra.
resultado buscado: "normal text <strong>words to be bolded</strong> continue normal text"
resultado: "normal text *words to be bolded* continue normal text"
Necesito que esta función funcione para el texto que sea:
function bold(text){ reg = /\*(\w+)\*/g return text.replaceAll(reg, "<strong>" + text.split(reg)[1] + "</strong>") }Puede utilizar el método de división de matriz.
const str = "word1 word2 pla pla"; const newStr = []; str.split(" ").forEach((val) => { newStr.push(`<strong>${val}</strong> `); }); console.log(newStr);Debe permitir que haya un conjunto de caracteres allí. Ahora mismo, tienes la secuencia de caracteres fija.
function bold(text){ reg = /\*([\w\s]+)\*/g return text.replaceAll(reg, "<strong>" + text.split(reg)[1] + "</strong>") }Supongo que por 'palabras en negrita', está tratando de hacer coincidir cualquier cosa que no sea un asterisco.
function bold(text){ let reg = /\*([^\*]*)\*/g; return text.replaceAll(reg, "<strong>$1</strong>") }; let result = bold("normal1 *bold1 including space!* normal2 *bold2, including space?* normal3"); console.log(result);