Tengo el siguiente texto devuelto por una API en una sola línea:
1. Elija un objetivo. Elige un objetivo dentro del alcance de tu ataque: una criatura, un objeto o una ubicación. 2. Determinar modificadores. El DJ determina si el objetivo tiene cobertura y si tienes ventaja o desventaja contra el objetivo. Además, los hechizos, habilidades especiales y otros efectos pueden aplicar penalizaciones o bonificaciones a tu tirada de ataque. 3. Resuelva el ataque. Haces la tirada de ataque. Con un impacto, tiras daño, a menos que el ataque en particular tenga reglas que especifiquen lo contrario. Algunos ataques causan efectos especiales además o en lugar del daño.
Lo que busco es hacer una lista ordenada en base a este texto separados por los dígitos. Tengo este código tratando de hacer que esto funcione:
html = html.replace(/\d\.([\s\w]+)/g, "<li>$1</li>");Pero me da esto como resultado:
•
Elige un objetivo. Elige un objetivo dentro del alcance de tu ataque: una criatura, un objeto o una ubicación.
•
Determinar modificadores. El DJ determina si el objetivo tiene cobertura y si tienes ventaja o desventaja contra el objetivo. Además, los hechizos, habilidades especiales y otros efectos pueden aplicar penalizaciones o bonificaciones a tu tirada de ataque.
•
Resuelve el ataque. Haces la tirada de ataque. Con un impacto, tiras daño, a menos que el ataque en particular tenga reglas que especifiquen lo contrario. Algunos ataques causan efectos especiales además o en lugar del daño.
Lo que estoy tratando de obtener como resultado sería:
- Elige un objetivo. Elige un objetivo dentro del alcance de tu ataque: una criatura, un objeto o una ubicación.
- Determinar modificadores. El DJ determina si el objetivo tiene cobertura y si tienes ventaja o desventaja contra el objetivo. Además, los hechizos, habilidades especiales y otros efectos pueden aplicar penalizaciones o bonificaciones a tu tirada de ataque.
- Resuelve el ataque. Haces la tirada de ataque. Con un impacto, tiras daño, a menos que el ataque en particular tenga reglas que especifiquen lo contrario. Algunos ataques causan efectos especiales además o en lugar del daño.
¿Puede alguien ayudarme a decirme qué estoy haciendo mal y una posible solución para que esto funcione? Muchas gracias por la ayuda.
Puede usar el hecho de que los elementos <li> no necesitan cerrarse explícitamente en HTML, y luego es tan simple como reemplazar cada número con <li> .
También asegúrese de que el elemento principal sea un elemento <ol> ("lista ordenada"), de modo que obtenga la numeración en lugar de las viñetas:
let html = "1. Choose a target. Pick a target within your attack's range: a creature, an object, or a location. 2. Determine modifiers. The GM determines whether the target has cover and whether you have advantage or disadvantage against the target. In addition, spells, special abilities, and other effects can apply penalties or bonuses to your attack roll. 3. Resolve the attack. You make the attack roll. On a hit, you roll damage, unless the particular attack has rules that specify otherwise. Some attacks cause special effects in addition to or instead of damage."; html = html.replace(/\s*\d+\.\s*/g, "<li>"); document.querySelector("ol").innerHTML = html; <ol></ol>