Trudno opisać mój problem słowami, postaram dając przykład:Jak usunąć tagi wyjątkiem Format poczty znaczników kontenerowych
str = '<p>lorem ipsum <[email protected]> donor sit <br></p>';
trzeba usunąć wszystkie znaczniki z wyjątkiem <[email protected]>
Jak możemy zrobić w javascript, a także PHP?
Moje rozwiązanie 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>');
To jest nieprawidłowy znacznik. '<>' Wokół adresu e-mail powinno być '>' i '<' lub, jeśli jest to XHTML, tekst P powinien być sekcją CDATA. Tak jak teraz, e-mail tworzy nieprawidłowy element. – Gordon
@Gordon Całkowicie się z tobą zgadzam, muszę przekonwertować < and > na > i < tylko jeśli jest to adres e-mail, inne tagi powinny być w paski. – WebolizeR
@WebolizeR Nie, powinieneś wstawić kątowniki jako elementy już ... – feeela