javascript - test - Texto de coincidencia Regex entre etiquetas
javascript regex test (4)
Tratar
str.match(/<b>(.*?)<//b>/g);
Tengo esta cadena:
My name is <b>Bob</b>, I''m <b>20</b> years old, I like <b>programming</b>.
Me gustaría obtener el texto entre las etiquetas b
en una matriz, es decir:
[''Bob'', ''20'', ''programming'']
Intenté esto /<b>(.*?)<//b>/.exec(str)
pero solo obtendrá el primer texto.
Use match en su lugar, y la bandera g.
str.match(/<b>(.*?)<//b>/g);
/<b>(.*?)<//b>/g
Agregue el indicador g
( global ) después de:
/<b>(.*?)<//b>/g.exec(str)
//^-----here it is
Sin embargo, si desea obtener todos los elementos coincidentes, entonces necesita algo como esto:
var str = "<b>Bob</b>, I''m <b>20</b> years old, I like <b>programming</b>.";
var result = str.match(/<b>(.*?)<//b>/g).map(function(val){
return val.replace(/<//?b>/g,'''');
});
//result -> ["Bob", "20", "programming"]
var root = document.createElement("div");
root.innerHTML = "My name is <b>Bob</b>, I''m <b>20</b> years old, I like <b>programming</b>.";
var texts = [].map.call( root.querySelectorAll("b"), function(v){
return v.textContent || v.innerText || "";
});
//["Bob", "20", "programming"]