Es difícil describir mi problema por medio de palabras, voy a tratar de dar un ejemplo:Cómo quitar las etiquetas, excepto las etiquetas de contenedores formato electrónico
str = '<p>lorem ipsum <[email protected]> donor sit <br></p>';
I necesidad de eliminar todas las etiquetas excepto <[email protected]>
¿Cómo podemos hacer en javascript y también en PHP?
Mi solución PHP:
class test {
public function keepMailAddresses($text){
$callBack = array($this,'_keepMailAddresses');
return preg_replace_callback('/(<)([^0-9][a-zA-Z0-9_]*([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4})(>)/i', $callBack, $text);
}
private function _keepMailAddresses($matches){
return '<'.$matches[2].'>';
}
}
$obj = new test();
echo $obj->keepMailAddresses('<p>lorem ipsum <[email protected]> donor sit <br></p>');
Esto es un marcado no válido. El '<>' alrededor de la dirección de correo electrónico debe ser '>' y '<' o, si esto es XHTML, el texto P debe ser una sección CDATA. Como está ahora, el correo electrónico está creando un elemento no válido. – Gordon
@Gordon Estoy completamente de acuerdo con usted, necesito convertir < and > en > y < solo si se trata de una dirección de correo electrónico, otras etiquetas deben ser de rayas. – WebolizeR
@WebolizeR No, deberías haber insertado los corchetes angulares como entidades ya ... – feeela