5
这是很难用言语来形容我的问题,我将提供一个示例尝试:如何删除除邮件格式容器标签标签
str = '<p>lorem ipsum <[email protected]> donor sit <br></p>';
我需要删除除<[email protected]>
所有标签我们如何在JavaScript和PHP中做到这一点?
我的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>');
这是无效的标记。电子邮件地址周围的'<>'应该是'>'和'<',或者如果这是XHTML,则P文本应该是CDATA部分。它现在的电子邮件的方式是创建一个无效的元素。 – Gordon
@Gordon我完全同意你的看法,我需要将< and >转换为>和<,只有当它是一个电子邮件地址时,其他情况下的标签应该被分条。 – WebolizeR
@WebolizeR不,你应该已经插入尖括号作为实体已经... – feeela